namespace SL
{
	public static class ConvertExtension
	{
		public static SL.Orca.DatabaseObject Convert(this Us.Mil.Osd.Acq.Damir.Orca.DatabaseObject src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.DatabaseObject();
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionHistoryAction Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionHistoryAction src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionHistoryAction();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SubmissionHistoryActionEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SubmissionHistoryActionEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionHistoryActionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MajorCostCategory Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MajorCostCategory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MajorCostCategory();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.MajorCostCategoryEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.MajorCostCategoryEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MajorCostCategoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.SequencedObjectRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.SequencedObjectRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.SequencedObjectRevocation();
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.DataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.DataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.DataPointRevocation();
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractPerformanceDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractPerformanceDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractPerformanceDataPointRevocation();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractPerformanceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.DataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.DataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.DataPoint();
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.NuclearCostDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.NuclearCostDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.NuclearCostDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.NuclearCostSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.NuclearCostSubprogram();
        dest1.URI = src1.URI;
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.NuclearCostSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.NuclearCostSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                src3 = src2.NuclearCost;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.NuclearCost = dest3;
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.NuclearCostDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.DatabaseObjectRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.DatabaseObjectRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.DatabaseObjectRevocation();
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SubprogramHistoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SubprogramHistoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SubprogramHistoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SubprogramHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARMasterDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARMasterDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARMasterDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.SBDate = src0.SBDate;
dest0.APBDate = src0.APBDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARMasterDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARCostVarianceWorkDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARCostVarianceWorkDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARCostVarianceWorkDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARCostVarianceWorkSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARCostVarianceWorkSubprogram();
        dest1.URI = src1.URI;
        dest1.BaseYear = src1.BaseYear;
        dest1.BaseYearNumeric = src1.BaseYearNumeric;
        dest1.DollarPrecision = src1.DollarPrecision;
        src2 = src1.CurveParameters;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVarianceWorkCurveParameters();
            src3 = src2.SB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceWorkCurveParametersCurve();
                src4 = src3.A;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.A = dest4;
                }
                src4 = src3.B;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.B = dest4;
                }
                src4 = src3.FirstUnitCost;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.FirstUnitCost = dest4;
                }
                src4 = src3.Slope;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Slope = dest4;
                }
                src4 = src3.RSquared;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.RSquared = dest4;
                }
                dest2.SB = dest3;
            }
            src3 = src2.PCE;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceWorkCurveParametersCurve();
                src4 = src3.A;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.A = dest4;
                }
                src4 = src3.B;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.B = dest4;
                }
                src4 = src3.FirstUnitCost;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.FirstUnitCost = dest4;
                }
                src4 = src3.Slope;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Slope = dest4;
                }
                src4 = src3.RSquared;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDouble>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDouble();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.RSquared = dest4;
                }
                dest2.PCE = dest3;
            }
            dest1.CurveParameters = dest2;
        }
        if (src1.Accounts != null) {
            dest1.Accounts = new SL.Tamarin.SARCostVarianceWorkAccountCollection();
            for (int i1 = 0; i1 < src1.Accounts.Count; i1++)
            {
                src2 = src1.Accounts[i1];
                dest2 = new SL.Tamarin.SARCostVarianceWorkAccount();
                dest2.Symbol = src2.Symbol;
                src3 = src2.Calculations;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.SARCostVarianceWorkCalculations();
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAccountYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAccountYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.RDTE;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearRDTE();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetRdte();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    src7 = src6.SupportVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.SupportVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                src6 = src5.SupportVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.SupportVariance = dest6;
                                }
                                dest4.RDTE = dest5;
                            }
                            src5 = src4.Procurement;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearProcurement();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffset();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    src7 = src6.SupportVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorProcSupport();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        src8 = src7.OtherSupport;
                                        if (src8 != null) {
                                            dest8 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                            src9 = src8.ThenYear;
                                            if (src9 != null) {
                                                dest9 = new System.Nullable<SL.Orca.SecureDecimal>();
                                                dest9.HasValue = src9.HasValue;
                                                src10 = src9.Value;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecureDecimal();
                                                    src11 = src10.SecurityDescriptor;
                                                    if (src11 != null) {
                                                        dest11 = new SL.Orca.SecurityDescriptor();
                                                        dest10.SecurityDescriptor = dest11;
                                                    }
                                                    dest10.Value = src10.Value;
                                                    dest9.Value = dest10;
                                                }
                                                dest8.ThenYear = dest9;
                                            }
                                            src9 = src8.BaseYear;
                                            if (src9 != null) {
                                                dest9 = new System.Nullable<SL.Orca.SecureDecimal>();
                                                dest9.HasValue = src9.HasValue;
                                                src10 = src9.Value;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecureDecimal();
                                                    src11 = src10.SecurityDescriptor;
                                                    if (src11 != null) {
                                                        dest11 = new SL.Orca.SecurityDescriptor();
                                                        dest10.SecurityDescriptor = dest11;
                                                    }
                                                    dest10.Value = src10.Value;
                                                    dest9.Value = dest10;
                                                }
                                                dest8.BaseYear = dest9;
                                            }
                                            dest7.OtherSupport = dest8;
                                        }
                                        src8 = src7.InitialSpares;
                                        if (src8 != null) {
                                            dest8 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                            src9 = src8.ThenYear;
                                            if (src9 != null) {
                                                dest9 = new System.Nullable<SL.Orca.SecureDecimal>();
                                                dest9.HasValue = src9.HasValue;
                                                src10 = src9.Value;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecureDecimal();
                                                    src11 = src10.SecurityDescriptor;
                                                    if (src11 != null) {
                                                        dest11 = new SL.Orca.SecurityDescriptor();
                                                        dest10.SecurityDescriptor = dest11;
                                                    }
                                                    dest10.Value = src10.Value;
                                                    dest9.Value = dest10;
                                                }
                                                dest8.ThenYear = dest9;
                                            }
                                            src9 = src8.BaseYear;
                                            if (src9 != null) {
                                                dest9 = new System.Nullable<SL.Orca.SecureDecimal>();
                                                dest9.HasValue = src9.HasValue;
                                                src10 = src9.Value;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecureDecimal();
                                                    src11 = src10.SecurityDescriptor;
                                                    if (src11 != null) {
                                                        dest11 = new SL.Orca.SecurityDescriptor();
                                                        dest10.SecurityDescriptor = dest11;
                                                    }
                                                    dest10.Value = src10.Value;
                                                    dest9.Value = dest10;
                                                }
                                                dest8.BaseYear = dest9;
                                            }
                                            dest7.InitialSpares = dest8;
                                        }
                                        dest6.SupportVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                src6 = src5.QuantityVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkQuantityVariance();
                                    src7 = src6.True;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.True = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.QuantityVariance = dest6;
                                }
                                src6 = src5.ScheduleVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.ScheduleVariance = dest6;
                                }
                                src6 = src5.SupportVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkSupportVariance();
                                    src7 = src6.OtherSupport;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.OtherSupport = dest7;
                                    }
                                    src7 = src6.InitialSpares;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.InitialSpares = dest7;
                                    }
                                    dest5.SupportVariance = dest6;
                                }
                                dest4.Procurement = dest5;
                            }
                            src5 = src4.MILCON;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearSimpleAcqCategory();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetEstOnly();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                dest4.MILCON = dest5;
                            }
                            src5 = src4.OM;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearSimpleAcqCategory();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetEstOnly();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                dest4.OM = dest5;
                            }
                            src5 = src4.WCFC;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearSimpleAcqCategory();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetEstOnly();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                dest4.WCFC = dest5;
                            }
                            src5 = src4.WCFO;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearSimpleAcqCategory();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetEstOnly();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                dest4.WCFO = dest5;
                            }
                            src5 = src4.ORFC;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearSimpleAcqCategory();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetEstOnly();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                dest4.ORFC = dest5;
                            }
                            src5 = src4.ORFO;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkAccountYearSimpleAcqCategory();
                                src6 = src5.EconomicVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ThenYearOnlyVariance();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    dest5.EconomicVariance = dest6;
                                }
                                src6 = src5.CurrentAndPriorOffset;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkCurrentAndPriorOffsetEstOnly();
                                    src7 = src6.EstimatingVariance;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.EstimatingVariance = dest7;
                                    }
                                    dest5.CurrentAndPriorOffset = dest6;
                                }
                                dest4.ORFO = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.Calculations = dest3;
                }
                src3 = src2.Overrides;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.SARCostVarianceWorkOverrides();
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkOverridesYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkOverridesYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Procurement;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkOverridesYearCategory();
                                src6 = src5.QuantityVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkQuantityVariance();
                                    src7 = src6.True;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.True = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.QuantityVariance = dest6;
                                }
                                src6 = src5.ScheduleVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.ScheduleVariance = dest6;
                                }
                                dest4.Procurement = dest5;
                            }
                            src5 = src4.WCFC;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkOverridesYearCategory();
                                src6 = src5.QuantityVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkQuantityVariance();
                                    src7 = src6.True;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.True = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.QuantityVariance = dest6;
                                }
                                src6 = src5.ScheduleVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.ScheduleVariance = dest6;
                                }
                                dest4.WCFC = dest5;
                            }
                            src5 = src4.ORFC;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkOverridesYearCategory();
                                src6 = src5.QuantityVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.SARCostVarianceWorkQuantityVariance();
                                    src7 = src6.True;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.True = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.QuantityVariance = dest6;
                                }
                                src6 = src5.ScheduleVariance;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.ScheduleVariance = dest6;
                                }
                                dest4.ORFC = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.Overrides = dest3;
                }
                src3 = src2.SupportOffset;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.SARCostVarianceWorkSupportOffset();
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkSupportOffsetYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkSupportOffsetYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.RDTE;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.RDTE = dest5;
                            }
                            src5 = src4.Procurement;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkSupportVariance();
                                src6 = src5.OtherSupport;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.OtherSupport = dest6;
                                }
                                src6 = src5.InitialSpares;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.InitialSpares = dest6;
                                }
                                dest4.Procurement = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.SupportOffset = dest3;
                }
                src3 = src2.QuantityAllocations;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocations();
                    src4 = src3.Calculations;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocation();
                        src5 = src4.Procurement;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocationCategory();
                            src6 = src5.QuantityVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.QuantityVariance = dest6;
                            }
                            src6 = src5.ScheduleVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.ScheduleVariance = dest6;
                            }
                            src6 = src5.EngineeringVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EngineeringVariance = dest6;
                            }
                            src6 = src5.EstimatingVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EstimatingVariance = dest6;
                            }
                            src6 = src5.OtherVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.OtherVariance = dest6;
                            }
                            dest4.Procurement = dest5;
                        }
                        src5 = src4.WCFC;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocationCategory();
                            src6 = src5.QuantityVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.QuantityVariance = dest6;
                            }
                            src6 = src5.ScheduleVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.ScheduleVariance = dest6;
                            }
                            src6 = src5.EngineeringVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EngineeringVariance = dest6;
                            }
                            src6 = src5.EstimatingVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EstimatingVariance = dest6;
                            }
                            src6 = src5.OtherVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.OtherVariance = dest6;
                            }
                            dest4.WCFC = dest5;
                        }
                        src5 = src4.ORFC;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocationCategory();
                            src6 = src5.QuantityVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.QuantityVariance = dest6;
                            }
                            src6 = src5.ScheduleVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.ScheduleVariance = dest6;
                            }
                            src6 = src5.EngineeringVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EngineeringVariance = dest6;
                            }
                            src6 = src5.EstimatingVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EstimatingVariance = dest6;
                            }
                            src6 = src5.OtherVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.OtherVariance = dest6;
                            }
                            dest4.ORFC = dest5;
                        }
                        dest3.Calculations = dest4;
                    }
                    src4 = src3.Overrides;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocation();
                        src5 = src4.Procurement;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocationCategory();
                            src6 = src5.QuantityVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.QuantityVariance = dest6;
                            }
                            src6 = src5.ScheduleVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.ScheduleVariance = dest6;
                            }
                            src6 = src5.EngineeringVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EngineeringVariance = dest6;
                            }
                            src6 = src5.EstimatingVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EstimatingVariance = dest6;
                            }
                            src6 = src5.OtherVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.OtherVariance = dest6;
                            }
                            dest4.Procurement = dest5;
                        }
                        src5 = src4.WCFC;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocationCategory();
                            src6 = src5.QuantityVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.QuantityVariance = dest6;
                            }
                            src6 = src5.ScheduleVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.ScheduleVariance = dest6;
                            }
                            src6 = src5.EngineeringVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EngineeringVariance = dest6;
                            }
                            src6 = src5.EstimatingVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EstimatingVariance = dest6;
                            }
                            src6 = src5.OtherVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.OtherVariance = dest6;
                            }
                            dest4.WCFC = dest5;
                        }
                        src5 = src4.ORFC;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceWorkQuantityAllocationCategory();
                            src6 = src5.QuantityVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.QuantityVariance = dest6;
                            }
                            src6 = src5.ScheduleVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.ScheduleVariance = dest6;
                            }
                            src6 = src5.EngineeringVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EngineeringVariance = dest6;
                            }
                            src6 = src5.EstimatingVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.EstimatingVariance = dest6;
                            }
                            src6 = src5.OtherVariance;
                            if (src6 != null) {
                                dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src7 = src6.ThenYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.ThenYear = dest7;
                                }
                                src7 = src6.BaseYear;
                                if (src7 != null) {
                                    dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest7.HasValue = src7.HasValue;
                                    src8 = src7.Value;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecureDecimal();
                                        src9 = src8.SecurityDescriptor;
                                        if (src9 != null) {
                                            dest9 = new SL.Orca.SecurityDescriptor();
                                            dest8.SecurityDescriptor = dest9;
                                        }
                                        dest8.Value = src8.Value;
                                        dest7.Value = dest8;
                                    }
                                    dest6.BaseYear = dest7;
                                }
                                dest5.OtherVariance = dest6;
                            }
                            dest4.ORFC = dest5;
                        }
                        dest3.Overrides = dest4;
                    }
                    dest2.QuantityAllocations = dest3;
                }
                src3 = src2.QuantityRelatedSupport;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.SARCostVarianceWorkQuantityRelatedSupport();
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkQuantityRelatedSupportYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkQuantityRelatedSupportYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.RDTE;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.RDTE = dest5;
                            }
                            src5 = src4.Procurement;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.SARCostVarianceWorkSupportVariance();
                                src6 = src5.OtherSupport;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.OtherSupport = dest6;
                                }
                                src6 = src5.InitialSpares;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.CostVarianceDollarAmountPair();
                                    src7 = src6.ThenYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.ThenYear = dest7;
                                    }
                                    src7 = src6.BaseYear;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.BaseYear = dest7;
                                    }
                                    dest5.InitialSpares = dest6;
                                }
                                dest4.Procurement = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.QuantityRelatedSupport = dest3;
                }
                dest1.Accounts.Add(dest2);
            }
        }
        src2 = src1.AdditionalChanges;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVarianceWorkAdditionalChanges();
            if (src2.RDTE != null) {
                dest2.RDTE = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.RDTE.Count; i2++)
                {
                    src3 = src2.RDTE[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.RDTE.Add(dest3);
                }
            }
            if (src2.Procurement != null) {
                dest2.Procurement = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.Procurement.Count; i2++)
                {
                    src3 = src2.Procurement[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.Procurement.Add(dest3);
                }
            }
            if (src2.MILCON != null) {
                dest2.MILCON = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.MILCON.Count; i2++)
                {
                    src3 = src2.MILCON[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.MILCON.Add(dest3);
                }
            }
            if (src2.OM != null) {
                dest2.OM = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.OM.Count; i2++)
                {
                    src3 = src2.OM[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.OM.Add(dest3);
                }
            }
            if (src2.WCFC != null) {
                dest2.WCFC = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.WCFC.Count; i2++)
                {
                    src3 = src2.WCFC[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.WCFC.Add(dest3);
                }
            }
            if (src2.WCFO != null) {
                dest2.WCFO = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.WCFO.Count; i2++)
                {
                    src3 = src2.WCFO[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.WCFO.Add(dest3);
                }
            }
            if (src2.ORFC != null) {
                dest2.ORFC = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.ORFC.Count; i2++)
                {
                    src3 = src2.ORFC[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.ORFC.Add(dest3);
                }
            }
            if (src2.ORFO != null) {
                dest2.ORFO = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeCollection();
                for (int i2 = 0; i2 < src2.ORFO.Count; i2++)
                {
                    src3 = src2.ORFO[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceWorkAdditionalChange();
                    dest3.URI = src3.URI;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    dest3.IsQuantityRelated = src3.IsQuantityRelated;
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    if (src3.Years != null) {
                        dest3.Years = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYearCollection();
                        for (int i3 = 0; i3 < src3.Years.Count; i3++)
                        {
                            src4 = src3.Years[i3];
                            dest4 = new SL.Tamarin.SARCostVarianceWorkAdditionalChangeYear();
                            dest4.FiscalYear = src4.FiscalYear;
                            dest4.FiscalYearNumeric = src4.FiscalYearNumeric;
                            src5 = src4.Variance;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CostVarianceDollarAmountPairWithRoundingError();
                                src6 = src5.RoundingError;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.RoundingError = dest6;
                                }
                                src6 = src5.ThenYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.ThenYear = dest6;
                                }
                                src6 = src5.BaseYear;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.BaseYear = dest6;
                                }
                                dest4.Variance = dest5;
                            }
                            dest3.Years.Add(dest4);
                        }
                    }
                    dest2.ORFO.Add(dest3);
                }
            }
            dest1.AdditionalChanges = dest2;
        }
        src2 = src1.Adjustments;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVarianceWorkAdjustments();
            src3 = src2.Calculations;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceWorkAdjustmentsCalculations();
                src4 = src3.Procurement;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Procurement = dest4;
                }
                src4 = src3.MILCON;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.MILCON = dest4;
                }
                src4 = src3.OM;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.OM = dest4;
                }
                src4 = src3.WCFC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.WCFC = dest4;
                }
                src4 = src3.WCFO;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.WCFO = dest4;
                }
                src4 = src3.ORFC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.ORFC = dest4;
                }
                src4 = src3.ORFO;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.ORFO = dest4;
                }
                dest2.Calculations = dest3;
            }
            src3 = src2.Overrides;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceWorkAdjustmentsOverrides();
                src4 = src3.RDTE;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.RDTE = dest4;
                }
                src4 = src3.Procurement;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Procurement = dest4;
                }
                src4 = src3.MILCON;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.MILCON = dest4;
                }
                src4 = src3.OM;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.OM = dest4;
                }
                src4 = src3.WCFC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.WCFC = dest4;
                }
                src4 = src3.WCFO;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.WCFO = dest4;
                }
                src4 = src3.ORFC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.ORFC = dest4;
                }
                src4 = src3.ORFO;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.ORFO = dest4;
                }
                dest2.Overrides = dest3;
            }
            dest1.Adjustments = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARCostVarianceWorkDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MissionDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MissionDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MissionDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Mission;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Mission = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MissionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContactDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContactDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContactDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.Type;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContactTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContactTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Type = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContactDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.Type;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.ContactTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.ContactTypeEnum();
            dest2.Value = dest3;
        }
        dest1.Type = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryResultFieldRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryResultFieldRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryResultFieldRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryResultFieldKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SubprivilegeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SubprivilegeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SubprivilegeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SubprivilegeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ScheduleDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ScheduleDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ScheduleDataPoint();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.ScheduleSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.ScheduleSubprogram();
        dest1.URI = src1.URI;
        src2 = src1.HasSIPRNETBreaches;
        if (src2 != null) {
            dest2 = new SL.Orca.SecureBoolean();
            src3 = src2.SecurityDescriptor;
            if (src3 != null) {
                dest3 = new SL.Orca.SecurityDescriptor();
                dest2.SecurityDescriptor = dest3;
            }
            dest2.Value = src2.Value;
            dest1.HasSIPRNETBreaches = dest2;
        }
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.ScheduleSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.ScheduleSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                if (src2.Milestones != null) {
                    dest2.Milestones = new SL.Tamarin.ScheduleMilestoneCollection();
                    for (int i2 = 0; i2 < src2.Milestones.Count; i2++)
                    {
                        src3 = src2.Milestones[i2];
                        dest3 = new SL.Tamarin.ScheduleMilestone();
                        dest3.URI = src3.URI;
                        dest3.Header = src3.Header;
                        src4 = src3.Name;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Name = dest4;
                        }
                        src4 = src3.Category;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Tamarin.MilestoneCategoryEnum>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.MilestoneCategoryEnum();
                                dest4.Value = dest5;
                            }
                            dest3.Category = dest4;
                        }
                        src4 = src3.Estimate;
                        if (src4 != null) {
                            dest4 = new SL.Tamarin.MilestoneValue();
                            src5 = src4.Placeholder;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest5.Value = dest6;
                                }
                                dest4.Placeholder = dest5;
                            }
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureDateTime();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest6.Value = src6.Value;
                                    dest5.Value = dest6;
                                }
                                dest4.Value = dest5;
                            }
                            dest3.Estimate = dest4;
                        }
                        src4 = src3.Threshold;
                        if (src4 != null) {
                            dest4 = new SL.Tamarin.MilestoneValue();
                            src5 = src4.Placeholder;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest5.Value = dest6;
                                }
                                dest4.Placeholder = dest5;
                            }
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureDateTime();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest6.Value = src6.Value;
                                    dest5.Value = dest6;
                                }
                                dest4.Value = dest5;
                            }
                            dest3.Threshold = dest4;
                        }
                        if (src3.FootnoteNumbers != null) {
                            dest3.FootnoteNumbers = new SL.Tamarin.SecureCollection<SL.Tamarin.FootnoteNumberItem>();
                            for (int i3 = 0; i3 < src3.FootnoteNumbers.Count; i3++)
                            {
                                src4 = src3.FootnoteNumbers[i3];
                                dest4 = new SL.Tamarin.FootnoteNumberItem();
                                dest4.Value = src4.Value;
                                dest3.FootnoteNumbers.Add(dest4);
                            }
                        }
                        dest2.Milestones.Add(dest3);
                    }
                }
                if (src2.AcronymDefinitions != null) {
                    dest2.AcronymDefinitions = new SL.Tamarin.AcronymDefinitionCollection();
                    for (int i2 = 0; i2 < src2.AcronymDefinitions.Count; i2++)
                    {
                        src3 = src2.AcronymDefinitions[i2];
                        dest3 = new SL.Tamarin.AcronymDefinition();
                        dest3.Acronym = src3.Acronym;
                        src4 = src3.Definition;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Definition = dest4;
                        }
                        dest2.AcronymDefinitions.Add(dest3);
                    }
                }
                src3 = src2.Notes;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.Notes = dest3;
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ScheduleDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.AssessmentIndicator Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.AssessmentIndicator src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.AssessmentIndicator();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentIndicatorEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.AssessmentIndicatorKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSCostDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSCostDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSCostDataPoint();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.OSCostSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.OSCostSubprogram();
        dest1.URI = src1.URI;
        dest1.BaseYear = src1.BaseYear;
        dest1.BaseYearNumeric = src1.BaseYearNumeric;
        dest1.DollarPrecision = src1.DollarPrecision;
        src2 = src1.Assumptions;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Assumptions = dest2;
        }
        src2 = src1.AntecedentSystem;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.AntecedentSystem = dest2;
        }
        src2 = src1.Cost;
        if (src2 != null) {
            dest2 = new SL.Tamarin.OSCost();
            src3 = src2.Current;
            if (src3 != null) {
                dest3 = new SL.Tamarin.OSCostCurrent();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                if (src3.AlternateBaseYears != null) {
                    dest3.AlternateBaseYears = new SL.Tamarin.OSCostAlternateBaseYearCollection();
                    for (int i3 = 0; i3 < src3.AlternateBaseYears.Count; i3++)
                    {
                        src4 = src3.AlternateBaseYears[i3];
                        dest4 = new SL.Tamarin.OSCostAlternateBaseYear();
                        dest4.BaseYear = src4.BaseYear;
                        dest4.BaseYearNumeric = src4.BaseYearNumeric;
                        src5 = src4.Total;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Total = dest5;
                        }
                        src5 = src4.Threshold;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Threshold = dest5;
                        }
                        dest3.AlternateBaseYears.Add(dest4);
                    }
                }
                dest2.Current = dest3;
            }
            src3 = src2.Antecedent;
            if (src3 != null) {
                dest3 = new SL.Tamarin.OSCostAntecedent();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                dest2.Antecedent = dest3;
            }
            dest1.Cost = dest2;
        }
        src2 = src1.UnitCost;
        if (src2 != null) {
            dest2 = new SL.Tamarin.OSUnitCost();
            dest2.DollarPrecision = src2.DollarPrecision;
            src3 = src2.Current;
            if (src3 != null) {
                dest3 = new SL.Tamarin.OSUnitCostEstimate();
                src4 = src3.UnitOfMeasure;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureString>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureString();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.UnitOfMeasure = dest4;
                }
                src4 = src3.A;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.OSUnitCostEstimateA();
                    src5 = src4.MissionPersonnel;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.MissionPersonnel = dest5;
                    }
                    src5 = src4.UnitLevelConsumption;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.UnitLevelConsumption = dest5;
                    }
                    src5 = src4.IntermediateMaintenance;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.IntermediateMaintenance = dest5;
                    }
                    src5 = src4.DepotMaintenance;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.DepotMaintenance = dest5;
                    }
                    src5 = src4.ContractorSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ContractorSupport = dest5;
                    }
                    src5 = src4.SustainingSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.SustainingSupport = dest5;
                    }
                    src5 = src4.IndirectCosts;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.IndirectCosts = dest5;
                    }
                    src5 = src4.OtherCosts;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.OtherCosts = dest5;
                    }
                    dest3.A = dest4;
                }
                src4 = src3.B;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.OSUnitCostEstimateB();
                    src5 = src4.UnitLevelManpower;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.UnitLevelManpower = dest5;
                    }
                    src5 = src4.UnitOperations;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.UnitOperations = dest5;
                    }
                    src5 = src4.Maintenance;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.Maintenance = dest5;
                    }
                    src5 = src4.SustainingSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.SustainingSupport = dest5;
                    }
                    src5 = src4.ContinuingSystemImprovements;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ContinuingSystemImprovements = dest5;
                    }
                    src5 = src4.IndirectSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.IndirectSupport = dest5;
                    }
                    src5 = src4.OtherCosts;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.OtherCosts = dest5;
                    }
                    dest3.B = dest4;
                }
                dest2.Current = dest3;
            }
            src3 = src2.Antecedent;
            if (src3 != null) {
                dest3 = new SL.Tamarin.OSUnitCostEstimate();
                src4 = src3.UnitOfMeasure;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureString>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureString();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.UnitOfMeasure = dest4;
                }
                src4 = src3.A;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.OSUnitCostEstimateA();
                    src5 = src4.MissionPersonnel;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.MissionPersonnel = dest5;
                    }
                    src5 = src4.UnitLevelConsumption;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.UnitLevelConsumption = dest5;
                    }
                    src5 = src4.IntermediateMaintenance;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.IntermediateMaintenance = dest5;
                    }
                    src5 = src4.DepotMaintenance;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.DepotMaintenance = dest5;
                    }
                    src5 = src4.ContractorSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ContractorSupport = dest5;
                    }
                    src5 = src4.SustainingSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.SustainingSupport = dest5;
                    }
                    src5 = src4.IndirectCosts;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.IndirectCosts = dest5;
                    }
                    src5 = src4.OtherCosts;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.OtherCosts = dest5;
                    }
                    dest3.A = dest4;
                }
                src4 = src3.B;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.OSUnitCostEstimateB();
                    src5 = src4.UnitLevelManpower;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.UnitLevelManpower = dest5;
                    }
                    src5 = src4.UnitOperations;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.UnitOperations = dest5;
                    }
                    src5 = src4.Maintenance;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.Maintenance = dest5;
                    }
                    src5 = src4.SustainingSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.SustainingSupport = dest5;
                    }
                    src5 = src4.ContinuingSystemImprovements;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ContinuingSystemImprovements = dest5;
                    }
                    src5 = src4.IndirectSupport;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.IndirectSupport = dest5;
                    }
                    src5 = src4.OtherCosts;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.OtherCosts = dest5;
                    }
                    dest3.B = dest4;
                }
                dest2.Antecedent = dest3;
            }
            dest1.UnitCost = dest2;
        }
        src2 = src1.Notes;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Notes = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSCostDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.EscalationIndex Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.EscalationIndex src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.EscalationIndex();
dest0.BudgetYear = src0.BudgetYear;
dest0.BudgetYearNumeric = src0.BudgetYearNumeric;
dest0.Account = src0.Account;
dest0.FiscalYear = src0.FiscalYear;
dest0.FiscalYearNumeric = src0.FiscalYearNumeric;
dest0.RDTERaw = src0.RDTERaw;
dest0.RDTEOutlay = src0.RDTEOutlay;
dest0.ProcurementRaw = src0.ProcurementRaw;
dest0.ProcurementOutlay = src0.ProcurementOutlay;
dest0.MILCONRaw = src0.MILCONRaw;
dest0.MILCONOutlay = src0.MILCONOutlay;
dest0.OMRaw = src0.OMRaw;
dest0.OMOutlay = src0.OMOutlay;
dest0.WCFCRaw = src0.WCFCRaw;
dest0.WCFCOutlay = src0.WCFCOutlay;
dest0.WCFORaw = src0.WCFORaw;
dest0.WCFOOutlay = src0.WCFOOutlay;
dest0.ORFCRaw = src0.ORFCRaw;
dest0.ORFCOutlay = src0.ORFCOutlay;
dest0.ORFORaw = src0.ORFORaw;
dest0.ORFOOutlay = src0.ORFOOutlay;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.EscalationIndexKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.BaseYearConversionFactor Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.BaseYearConversionFactor src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.BaseYearConversionFactor();
dest0.BudgetYear = src0.BudgetYear;
dest0.BudgetYearNumeric = src0.BudgetYearNumeric;
dest0.FiscalYear = src0.FiscalYear;
dest0.FiscalYearNumeric = src0.FiscalYearNumeric;
dest0.RDTE = src0.RDTE;
dest0.Procurement = src0.Procurement;
dest0.MILCON = src0.MILCON;
dest0.OM = src0.OM;
dest0.WCFC = src0.WCFC;
dest0.WCFO = src0.WCFO;
dest0.ORFC = src0.ORFC;
dest0.ORFO = src0.ORFO;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.BaseYearConversionFactorKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.Log Convert(this Us.Mil.Osd.Acq.Damir.Orca.Log src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.Log();
dest0.Process = src0.Process;
dest0.Date = src0.Date;
dest0.Thread = src0.Thread;
dest0.Level = src0.Level;
dest0.Logger = src0.Logger;
dest0.Message = src0.Message;
dest0.Property = src0.Property;
dest0.Exception = src0.Exception;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.LogKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramLeadAnalyst Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramLeadAnalyst src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramLeadAnalyst();
dest0.Program = src0.Program;
dest0.Organization = src0.Organization;
dest0.Contact = src0.Contact;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramLeadAnalystKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SBMasterDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SBMasterDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SBMasterDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.PreferredName = src0.PreferredName;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SBMasterSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SBMasterSubprogram();
        dest1.URI = src1.URI;
        dest1.Name = src1.Name;
        src2 = src1.SB;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SBMasterSB();
            dest2.Name = src2.Name;
            dest2.ApprovalDate = src2.ApprovalDate;
            dest2.Event = src2.Event;
            src3 = src2.Phase;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Tamarin.SBPhaseEnum>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.SBPhaseEnum();
                    dest3.Value = dest4;
                }
                dest2.Phase = dest3;
            }
            dest2.Reference = src2.Reference;
            dest2.BaseYear = src2.BaseYear;
            dest2.BaseYearNumeric = src2.BaseYearNumeric;
            dest1.SB = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SBMasterDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARMasterDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARMasterDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARMasterDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARMasterDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARHistoryDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARHistoryDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARHistoryDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARHistoryDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ProgramDataSubmissionRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ProgramDataSubmissionRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ProgramDataSubmissionRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ProgramDataSubmissionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ProgramDataSubmission Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ProgramDataSubmission src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ProgramDataSubmission();
dest0.Submission = src0.Submission;
src1 = src0.SubmissionType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SubmissionTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SubmissionTypeEnum();
        dest1.Value = dest2;
    }
    dest0.SubmissionType = dest1;
}
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ProgramDataSubmissionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PictureDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PictureDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PictureDataPoint();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
dest0.Picture = src0.Picture;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PictureDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ExecutiveSummaryDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ExecutiveSummaryDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ExecutiveSummaryDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Sections != null) {
    dest0.Sections = new SL.Tamarin.ExecutiveSummarySectionCollection();
    for (int i0 = 0; i0 < src0.Sections.Count; i0++)
    {
        src1 = src0.Sections[i0];
        dest1 = new SL.Tamarin.ExecutiveSummarySection();
        src2 = src1.Origin;
        if (src2 != null) {
            dest2 = new SL.Tamarin.OriginEnum();
            dest1.Origin = dest2;
        }
        src2 = src1.ExecutiveSummary;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.ExecutiveSummary = dest2;
        }
        dest0.Sections.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ExecutiveSummaryDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ExecutionDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ExecutionDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ExecutionDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.ExecutionSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.ExecutionSubprogram();
        dest1.DollarPrecision = src1.DollarPrecision;
        dest1.URI = src1.URI;
        src2 = src1.Deliveries;
        if (src2 != null) {
            dest2 = new SL.Tamarin.ExecutionDeliveries();
            src3 = src2.Development;
            if (src3 != null) {
                dest3 = new SL.Tamarin.AcquisitionPhaseDeliveries();
                src4 = src3.Scheduled;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Scheduled = dest4;
                }
                src4 = src3.Actual;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Actual = dest4;
                }
                dest2.Development = dest3;
            }
            src3 = src2.Production;
            if (src3 != null) {
                dest3 = new SL.Tamarin.AcquisitionPhaseDeliveries();
                src4 = src3.Scheduled;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Scheduled = dest4;
                }
                src4 = src3.Actual;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Actual = dest4;
                }
                dest2.Production = dest3;
            }
            dest1.Deliveries = dest2;
        }
        src2 = src1.Expenditures;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureDecimal();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Expenditures = dest2;
        }
        src2 = src1.Notes;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Notes = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ExecutionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContactDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContactDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContactDataPoint();
dest0.Program = src0.Program;
src1 = src0.Type;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContactTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContactTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Type = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.DateAssigned;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.DateAssigned = dest1;
}
src1 = src0.Prefix;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Prefix = dest1;
}
src1 = src0.FirstName;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.FirstName = dest1;
}
src1 = src0.LastName;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.LastName = dest1;
}
src1 = src0.Suffix;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Suffix = dest1;
}
src1 = src0.Address;
if (src1 != null) {
    dest1 = new SL.Tamarin.Address();
    if (src1.Street != null) {
        dest1.Street = new SL.Tamarin.SecureCollection<SL.Tamarin.SecureNameItem>();
        for (int i1 = 0; i1 < src1.Street.Count; i1++)
        {
            src2 = src1.Street[i1];
            dest2 = new SL.Tamarin.SecureNameItem();
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Value = dest3;
            }
            dest1.Street.Add(dest2);
        }
    }
    src2 = src1.City;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.City = dest2;
    }
    src2 = src1.State;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.State = dest2;
    }
    src2 = src1.ZIPCode;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.ZIPCode = dest2;
    }
    src2 = src1.Province;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Province = dest2;
    }
    src2 = src1.PostalCode;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.PostalCode = dest2;
    }
    src2 = src1.Country;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Country = dest2;
    }
    dest0.Address = dest1;
}
src1 = src0.CommercialPhone;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.CommercialPhone = dest1;
}
src1 = src0.CommercialFAX;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.CommercialFAX = dest1;
}
src1 = src0.DSNPhone;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.DSNPhone = dest1;
}
src1 = src0.DSNFAX;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.DSNFAX = dest1;
}
src1 = src0.Email;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Email = dest1;
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContactDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.Type;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.ContactTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.ContactTypeEnum();
            dest2.Value = dest3;
        }
        dest1.Type = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryParameterField Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryParameterField src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryParameterField();
dest0.Parent = src0.Parent;
dest0.Position = src0.Position;
dest0.Name = src0.Name;
dest0.IsRequired = src0.IsRequired;
dest0.FieldType = src0.FieldType;
dest0.IsSecure = src0.IsSecure;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryParameterFieldKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Program Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Program src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Program();
dest0.URI = src0.URI;
dest0.PNO = src0.PNO;
dest0.Name = src0.Name;
dest0.FullName = src0.FullName;
dest0.IsActive = src0.IsActive;
dest0.IsOnApprovedList = src0.IsOnApprovedList;
dest0.Type = src0.Type;
dest0.SecondaryType = src0.SecondaryType;
dest0.ACAT = src0.ACAT;
dest0.InitiationDate = src0.InitiationDate;
dest0.DateOf2366aCertification = src0.DateOf2366aCertification;
dest0.DateOf2366bCertification = src0.DateOf2366bCertification;
dest0.IsJoint = src0.IsJoint;
dest0.Service = src0.Service;
dest0.LeadComponent = src0.LeadComponent;
dest0.JCA = src0.JCA;
dest0.CommodityType = src0.CommodityType;
dest0.Status = src0.Status;
dest0.DAESStatus = src0.DAESStatus;
dest0.DAESGroup = src0.DAESGroup;
dest0.SARStatus = src0.SARStatus;
dest0.LeadOrganization = src0.LeadOrganization;
dest0.Notes = src0.Notes;
dest0.ChangeContact = src0.ChangeContact;
dest0.ChangeExplanation = src0.ChangeExplanation;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.PrivilegeDataType Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.PrivilegeDataType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.PrivilegeDataType();
dest0.Code = src0.Code;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.PrivilegeDataTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.DataSourceRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.DataSourceRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.DataSourceRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.DataSourceKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.AssessmentRatingRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.AssessmentRatingRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.AssessmentRatingRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.AssessmentRatingKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARCostVarianceDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARCostVarianceDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARCostVarianceDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARCostVarianceSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARCostVarianceSubprogram();
        dest1.URI = src1.URI;
        dest1.BaseYear = src1.BaseYear;
        dest1.BaseYearNumeric = src1.BaseYearNumeric;
        dest1.DollarPrecision = src1.DollarPrecision;
        src2 = src1.SB;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVarianceSB();
            src3 = src2.RDTE;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.RDTE = dest3;
            }
            src3 = src2.Procurement;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.Procurement = dest3;
            }
            src3 = src2.MILCON;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.MILCON = dest3;
            }
            src3 = src2.OM;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.OM = dest3;
            }
            src3 = src2.WCFC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.WCFC = dest3;
            }
            src3 = src2.WCFO;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.WCFO = dest3;
            }
            src3 = src2.ORFC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.ORFC = dest3;
            }
            src3 = src2.ORFO;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostDollarAmountPair();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                src4 = src3.BaseYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.BaseYear = dest4;
                }
                dest2.ORFO = dest3;
            }
            dest1.SB = dest2;
        }
        src2 = src1.PreviousChanges;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVariancePreviousChanges();
            if (src2.RDTE != null) {
                dest2.RDTE = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.RDTE.Count; i2++)
                {
                    src3 = src2.RDTE[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.RDTE.Add(dest3);
                }
            }
            if (src2.Procurement != null) {
                dest2.Procurement = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.Procurement.Count; i2++)
                {
                    src3 = src2.Procurement[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.Procurement.Add(dest3);
                }
            }
            if (src2.MILCON != null) {
                dest2.MILCON = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.MILCON.Count; i2++)
                {
                    src3 = src2.MILCON[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.MILCON.Add(dest3);
                }
            }
            if (src2.OM != null) {
                dest2.OM = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.OM.Count; i2++)
                {
                    src3 = src2.OM[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.OM.Add(dest3);
                }
            }
            if (src2.WCFC != null) {
                dest2.WCFC = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.WCFC.Count; i2++)
                {
                    src3 = src2.WCFC[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.WCFC.Add(dest3);
                }
            }
            if (src2.WCFO != null) {
                dest2.WCFO = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.WCFO.Count; i2++)
                {
                    src3 = src2.WCFO[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.WCFO.Add(dest3);
                }
            }
            if (src2.ORFC != null) {
                dest2.ORFC = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.ORFC.Count; i2++)
                {
                    src3 = src2.ORFC[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.ORFC.Add(dest3);
                }
            }
            if (src2.ORFO != null) {
                dest2.ORFO = new SL.Tamarin.SARCostVariancePreviousChangeCollection();
                for (int i2 = 0; i2 < src2.ORFO.Count; i2++)
                {
                    src3 = src2.ORFO[i2];
                    dest3 = new SL.Tamarin.SARCostVariancePreviousChange();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.ORFO.Add(dest3);
                }
            }
            dest1.PreviousChanges = dest2;
        }
        src2 = src1.CurrentChanges;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVarianceCurrentChanges();
            if (src2.RDTE != null) {
                dest2.RDTE = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.RDTE.Count; i2++)
                {
                    src3 = src2.RDTE[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.RDTE.Add(dest3);
                }
            }
            if (src2.Procurement != null) {
                dest2.Procurement = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.Procurement.Count; i2++)
                {
                    src3 = src2.Procurement[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.Procurement.Add(dest3);
                }
            }
            if (src2.MILCON != null) {
                dest2.MILCON = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.MILCON.Count; i2++)
                {
                    src3 = src2.MILCON[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.MILCON.Add(dest3);
                }
            }
            if (src2.OM != null) {
                dest2.OM = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.OM.Count; i2++)
                {
                    src3 = src2.OM[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.OM.Add(dest3);
                }
            }
            if (src2.WCFC != null) {
                dest2.WCFC = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.WCFC.Count; i2++)
                {
                    src3 = src2.WCFC[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.WCFC.Add(dest3);
                }
            }
            if (src2.WCFO != null) {
                dest2.WCFO = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.WCFO.Count; i2++)
                {
                    src3 = src2.WCFO[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.WCFO.Add(dest3);
                }
            }
            if (src2.ORFC != null) {
                dest2.ORFC = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.ORFC.Count; i2++)
                {
                    src3 = src2.ORFC[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.ORFC.Add(dest3);
                }
            }
            if (src2.ORFO != null) {
                dest2.ORFO = new SL.Tamarin.SARCostVarianceCurrentChangeCollection();
                for (int i2 = 0; i2 < src2.ORFO.Count; i2++)
                {
                    src3 = src2.ORFO[i2];
                    dest3 = new SL.Tamarin.SARCostVarianceCurrentChange();
                    dest3.URI = src3.URI;
                    dest3.Header = src3.Header;
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.IsQuantityRelated;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsQuantityRelated = dest4;
                    }
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.Explanation;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Explanation = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        src5 = src4.BaseYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.BaseYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.ORFO.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.CurrentChanges = dest2;
        }
        src2 = src1.Adjustments;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARCostVarianceAdjustments();
            src3 = src2.RDTE;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.RDTE = dest3;
            }
            src3 = src2.Procurement;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.Procurement = dest3;
            }
            src3 = src2.MILCON;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.MILCON = dest3;
            }
            src3 = src2.OM;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.OM = dest3;
            }
            src3 = src2.WCFC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.WCFC = dest3;
            }
            src3 = src2.WCFO;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.WCFO = dest3;
            }
            src3 = src2.ORFC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.ORFC = dest3;
            }
            src3 = src2.ORFO;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARCostVarianceAdjustment();
                src4 = src3.Variance;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostVarianceDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Variance = dest4;
                }
                dest2.ORFO = dest3;
            }
            dest1.Adjustments = dest2;
        }
        src2 = src1.Notes;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Notes = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARCostVarianceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramHistoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramHistoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramHistoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ComponentRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ComponentRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ComponentRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ComponentKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARBreachDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARBreachDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARBreachDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARBreachDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractDataPoint();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.DollarPrecision = src0.DollarPrecision;
src1 = src0.Name;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Name = dest1;
}
if (src0.Types != null) {
    dest0.Types = new SL.Tamarin.SecureCollection<SL.Tamarin.SecureContractTypeItem>();
    for (int i0 = 0; i0 < src0.Types.Count; i0++)
    {
        src1 = src0.Types[i0];
        dest1 = new SL.Tamarin.SecureContractTypeItem();
        src2 = src1.Value;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.ContractTypeEnum>>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureEnum<SL.Tamarin.ContractTypeEnum>();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest2.Value = dest3;
            }
            dest1.Value = dest2;
        }
        dest0.Types.Add(dest1);
    }
}
src1 = src0.GovernmentShare;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureInteger>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureInteger();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.GovernmentShare = dest1;
}
src1 = src0.SystemName;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.SystemName = dest1;
}
src1 = src0.SystemPhase;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.ContractSystemPhaseEnum>>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureEnum<SL.Tamarin.ContractSystemPhaseEnum>();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest1.Value = dest2;
    }
    dest0.SystemPhase = dest1;
}
src1 = src0.Contractor;
if (src1 != null) {
    dest1 = new SL.Tamarin.Contractor();
    src2 = src1.Name;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Name = dest2;
    }
    src2 = src1.Division;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Division = dest2;
    }
    src2 = src1.CAGECode;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.CAGECode = dest2;
    }
    src2 = src1.Location;
    if (src2 != null) {
        dest2 = new SL.Tamarin.Address();
        if (src2.Street != null) {
            dest2.Street = new SL.Tamarin.SecureCollection<SL.Tamarin.SecureNameItem>();
            for (int i2 = 0; i2 < src2.Street.Count; i2++)
            {
                src3 = src2.Street[i2];
                dest3 = new SL.Tamarin.SecureNameItem();
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureString>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureString();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Value = dest4;
                }
                dest2.Street.Add(dest3);
            }
        }
        src3 = src2.City;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureString>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureString();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.City = dest3;
        }
        src3 = src2.State;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureString>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureString();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.State = dest3;
        }
        src3 = src2.ZIPCode;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureString>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureString();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.ZIPCode = dest3;
        }
        src3 = src2.Province;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureString>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureString();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.Province = dest3;
        }
        src3 = src2.PostalCode;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureString>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureString();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PostalCode = dest3;
        }
        src3 = src2.Country;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureString>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureString();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.Country = dest3;
        }
        dest1.Location = dest2;
    }
    dest0.Contractor = dest1;
}
src1 = src0.StartDate;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.StartDate = dest1;
}
src1 = src0.DefinitizationDate;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.DefinitizationDate = dest1;
}
src1 = src0.CompletionDate;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.CompletionDate = dest1;
}
src1 = src0.Quantity;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureInteger>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureInteger();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Quantity = dest1;
}
src1 = src0.TargetPrice;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.TargetPrice = dest1;
}
src1 = src0.CeilingPrice;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.CeilingPrice = dest1;
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractBudgetDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractBudgetDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractBudgetDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.APBMasterDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.APBMasterDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.APBMasterDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.PreferredName = src0.PreferredName;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.APBMasterSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.APBMasterSubprogram();
        dest1.URI = src1.URI;
        dest1.Name = src1.Name;
        src2 = src1.APB;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SubprogramAPB();
            dest2.Name = src2.Name;
            dest2.ApprovalDate = src2.ApprovalDate;
            dest2.Authority = src2.Authority;
            dest2.Event = src2.Event;
            src3 = src2.Phase;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Tamarin.APBPhaseEnum>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.APBPhaseEnum();
                    dest3.Value = dest4;
                }
                dest2.Phase = dest3;
            }
            dest2.Reference = src2.Reference;
            dest2.BaseYear = src2.BaseYear;
            dest2.BaseYearNumeric = src2.BaseYearNumeric;
            dest2.ConversionYear = src2.ConversionYear;
            dest2.ConversionYearNumeric = src2.ConversionYearNumeric;
            dest2.IsChange = src2.IsChange;
            dest2.IsOriginal = src2.IsOriginal;
            dest1.APB = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.APBMasterDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARCostVarianceCategoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARCostVarianceCategoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARCostVarianceCategoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARCostVarianceCategoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractAuxiliaryDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractAuxiliaryDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractAuxiliaryDataPointRevocation();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractAuxiliaryDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContactType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContactType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContactType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContactTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContactTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContactTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.UCRDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.UCRDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.UCRDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.UCRSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.UCRSubprogram();
        dest1.URI = src1.URI;
        dest1.BaseYear = src1.BaseYear;
        dest1.BaseYearNumeric = src1.BaseYearNumeric;
        dest1.DollarPrecision = src1.DollarPrecision;
        src2 = src1.OriginalAPB;
        if (src2 != null) {
            dest2 = new SL.Tamarin.UCRAPB();
            dest2.EffectiveDate = src2.EffectiveDate;
            src3 = src2.Cost;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRAPBCost();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Procurement;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Procurement = dest4;
                }
                dest2.Cost = dest3;
            }
            src3 = src2.Quantity;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRAPBQuantity();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Production;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Production = dest4;
                }
                dest2.Quantity = dest3;
            }
            dest1.OriginalAPB = dest2;
        }
        src2 = src1.APB;
        if (src2 != null) {
            dest2 = new SL.Tamarin.UCRAPB();
            dest2.EffectiveDate = src2.EffectiveDate;
            src3 = src2.Cost;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRAPBCost();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Procurement;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Procurement = dest4;
                }
                dest2.Cost = dest3;
            }
            src3 = src2.Quantity;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRAPBQuantity();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Production;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Production = dest4;
                }
                dest2.Quantity = dest3;
            }
            dest1.APB = dest2;
        }
        src2 = src1.InitialCE;
        if (src2 != null) {
            dest2 = new SL.Tamarin.UCRInitialCE();
            dest2.BaseYear = src2.BaseYear;
            dest2.BaseYearNumeric = src2.BaseYearNumeric;
            dest2.EffectiveDate = src2.EffectiveDate;
            src3 = src2.Cost;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRTotalCost();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                dest2.Cost = dest3;
            }
            dest1.InitialCE = dest2;
        }
        src2 = src1.PCE;
        if (src2 != null) {
            dest2 = new SL.Tamarin.UCRPCE();
            dest2.EffectiveDate = src2.EffectiveDate;
            src3 = src2.Quantity;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRTotalQuantity();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Total = dest4;
                }
                dest2.Quantity = dest3;
            }
            src3 = src2.UnitCost;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UCRPCEUnitCost();
                dest3.DollarPrecision = src3.DollarPrecision;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.UnitCost = dest3;
            }
            dest1.PCE = dest2;
        }
        src2 = src1.NunnMcCurdy;
        if (src2 != null) {
            dest2 = new SL.Tamarin.UCRNunnMcCurdy();
            src3 = src2.ReasonsForPAUCChanges;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.ReasonsForPAUCChanges = dest3;
            }
            src3 = src2.ReasonsForAPUCChanges;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.ReasonsForAPUCChanges = dest3;
            }
            src3 = src2.ImpactOfPerformanceOrScheduleChanges;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.ImpactOfPerformanceOrScheduleChanges = dest3;
            }
            src3 = src2.ProgramManagementAndControl;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.ProgramManagementAndControl = dest3;
            }
            src3 = src2.CostControlActions;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.CostControlActions = dest3;
            }
            src3 = src2.GeneralComments;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.GeneralComments = dest3;
            }
            dest1.NunnMcCurdy = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.UCRDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PictureDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PictureDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PictureDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PictureDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.LCSDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.LCSDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.LCSDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.LCSDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractDataPointRevocation();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryResultField Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryResultField src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryResultField();
dest0.Parent = src0.Parent;
dest0.Position = src0.Position;
dest0.Name = src0.Name;
dest0.FieldType = src0.FieldType;
dest0.IsRequired = src0.IsRequired;
dest0.IsSecure = src0.IsSecure;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryResultFieldKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SecurityGroup Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SecurityGroup src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SecurityGroup();
dest0.Parent = src0.Parent;
dest0.IsDomainRoot = src0.IsDomainRoot;
dest0.IsActive = src0.IsActive;
dest0.Name = src0.Name;
dest0.Organization = src0.Organization;
dest0.Notes = src0.Notes;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SecurityGroupKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.PrivilegeRestrictionTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.PrivilegeRestrictionTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.PrivilegeRestrictionTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.PrivilegeRestrictionTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractPerformanceDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractPerformanceDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractPerformanceDataPoint();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.DollarPrecision = src0.DollarPrecision;
src1 = src0.OriginalNCC;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.OriginalNCC = dest1;
}
src1 = src0.NCC;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.NCC = dest1;
}
src1 = src0.CBB;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.CBB = dest1;
}
src1 = src0.Performance;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractPerformance();
    src2 = src1.ReportDate;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDateTime>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDateTime();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.ReportDate = dest2;
    }
    src2 = src1.ReportType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.ContractPerformanceReportTypeEnum>>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureEnum<SL.Tamarin.ContractPerformanceReportTypeEnum>();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest2.Value = dest3;
        }
        dest1.ReportType = dest2;
    }
    src2 = src1.CompletionDate;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDateTime>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDateTime();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.CompletionDate = dest2;
    }
    src2 = src1.TAB;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.TAB = dest2;
    }
    src2 = src1.BAC;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.BAC = dest2;
    }
    src2 = src1.EAC;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.EAC = dest2;
    }
    src2 = src1.BCWS;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.BCWS = dest2;
    }
    src2 = src1.BCWP;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.BCWP = dest2;
    }
    src2 = src1.ACWP;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.ACWP = dest2;
    }
    src2 = src1.OTB;
    if (src2 != null) {
        dest2 = new SL.Tamarin.OverTargetBaseline();
        src3 = src2.OTBDate;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDateTime>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDateTime();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OTBDate = dest3;
        }
        src3 = src2.BACAdjustment;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.BACAdjustment = dest3;
        }
        src3 = src2.SVAdjustment;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.SVAdjustment = dest3;
        }
        src3 = src2.CVAdjustment;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.CVAdjustment = dest3;
        }
        dest1.OTB = dest2;
    }
    dest0.Performance = dest1;
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractPerformanceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.AssessmentType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.AssessmentType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.AssessmentType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.AssessmentTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.SettingRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.SettingRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.SettingRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.SettingKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramSynonym Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramSynonym src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramSynonym();
dest0.Program = src0.Program;
dest0.Synonym = src0.Synonym;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramSynonymKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramLeadAnalystRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramLeadAnalystRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramLeadAnalystRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramLeadAnalystKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramHistory Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramHistory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramHistory();
dest0.Program = src0.Program;
dest0.ActionUser = src0.ActionUser;
dest0.ActionTime = src0.ActionTime;
dest0.URI = src0.URI;
dest0.PNO = src0.PNO;
dest0.Name = src0.Name;
dest0.FullName = src0.FullName;
dest0.IsActive = src0.IsActive;
dest0.IsOnApprovedList = src0.IsOnApprovedList;
dest0.Type = src0.Type;
dest0.SecondaryType = src0.SecondaryType;
dest0.ACAT = src0.ACAT;
dest0.InitiationDate = src0.InitiationDate;
dest0.DateOf2366aCertification = src0.DateOf2366aCertification;
dest0.DateOf2366bCertification = src0.DateOf2366bCertification;
dest0.IsJoint = src0.IsJoint;
dest0.Service = src0.Service;
dest0.LeadComponent = src0.LeadComponent;
dest0.JCA = src0.JCA;
dest0.CommodityType = src0.CommodityType;
dest0.Status = src0.Status;
dest0.DAESStatus = src0.DAESStatus;
dest0.DAESGroup = src0.DAESGroup;
dest0.SARStatus = src0.SARStatus;
dest0.LeadOrganization = src0.LeadOrganization;
dest0.Notes = src0.Notes;
dest0.ChangeContact = src0.ChangeContact;
dest0.ChangeExplanation = src0.ChangeExplanation;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.NDA Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.NDA src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.NDA();
dest0.Contact = src0.Contact;
dest0.ActionTime = src0.ActionTime;
dest0.Accepted = src0.Accepted;
dest0.CertificateSubject = src0.CertificateSubject;
dest0.ContractorName = src0.ContractorName;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.NDAKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARBreachDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARBreachDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARBreachDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARBreachSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARBreachSubprogram();
        dest1.URI = src1.URI;
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.SARBreachSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.SARBreachSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                src3 = src2.Explanation;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.Explanation = dest3;
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARBreachDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ExecutionDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ExecutionDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ExecutionDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ExecutionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.CostDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.CostDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.CostDataPoint();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.CostSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.CostSubprogram();
        dest1.BaseYear = src1.BaseYear;
        dest1.BaseYearNumeric = src1.BaseYearNumeric;
        dest1.DollarPrecision = src1.DollarPrecision;
        dest1.URI = src1.URI;
        src2 = src1.Funding;
        if (src2 != null) {
            dest2 = new SL.Tamarin.CostFunding();
            if (src2.Accounts != null) {
                dest2.Accounts = new SL.Tamarin.AccountCollection();
                for (int i2 = 0; i2 < src2.Accounts.Count; i2++)
                {
                    src3 = src2.Accounts[i2];
                    dest3 = new SL.Tamarin.Account();
                    dest3.Symbol = src3.Symbol;
                    src4 = src3.RDTE;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountRDTE();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.RDTEFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.RDTEFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Flyaway;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.FundingFlyaway();
                                    src7 = src6.Recurring;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.FundingRecurring();
                                        src8 = src7.EndItemRelated;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.EndItemRelated = dest8;
                                        }
                                        src8 = src7.NonEndItemRelated;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.NonEndItemRelated = dest8;
                                        }
                                        src8 = src7.Total;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.Total = dest8;
                                        }
                                        dest6.Recurring = dest7;
                                    }
                                    src7 = src6.Nonrecurring;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Nonrecurring = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.Flyaway = dest6;
                                }
                                src6 = src5.Support;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Support = dest6;
                                }
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.RDTE = dest4;
                    }
                    src4 = src3.Procurement;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountProcurement();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.ProcurementFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.ProcurementFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Flyaway;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.FundingFlyaway();
                                    src7 = src6.Recurring;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.FundingRecurring();
                                        src8 = src7.EndItemRelated;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.EndItemRelated = dest8;
                                        }
                                        src8 = src7.NonEndItemRelated;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.NonEndItemRelated = dest8;
                                        }
                                        src8 = src7.Total;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.Total = dest8;
                                        }
                                        dest6.Recurring = dest7;
                                    }
                                    src7 = src6.Nonrecurring;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Nonrecurring = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.Flyaway = dest6;
                                }
                                src6 = src5.Support;
                                if (src6 != null) {
                                    dest6 = new SL.Tamarin.ProcurementFundingSupport();
                                    src7 = src6.OtherSupport;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.OtherSupport = dest7;
                                    }
                                    src7 = src6.InitialSpares;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.InitialSpares = dest7;
                                    }
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureDecimal();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    dest5.Support = dest6;
                                }
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.Procurement = dest4;
                    }
                    src4 = src3.MILCON;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountSimpleCategory();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.SimpleFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.SimpleFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.MILCON = dest4;
                    }
                    src4 = src3.OM;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountSimpleCategory();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.SimpleFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.SimpleFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.OM = dest4;
                    }
                    src4 = src3.WCFC;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountSimpleCategory();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.SimpleFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.SimpleFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.WCFC = dest4;
                    }
                    src4 = src3.WCFO;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountSimpleCategory();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.SimpleFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.SimpleFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.WCFO = dest4;
                    }
                    src4 = src3.ORFC;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountSimpleCategory();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.SimpleFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.SimpleFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.ORFC = dest4;
                    }
                    src4 = src3.ORFO;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountSimpleCategory();
                        if (src4.Years != null) {
                            dest4.Years = new SL.Tamarin.SimpleFundingYearCollection();
                            for (int i4 = 0; i4 < src4.Years.Count; i4++)
                            {
                                src5 = src4.Years[i4];
                                dest5 = new SL.Tamarin.SimpleFundingYear();
                                dest5.FiscalYear = src5.FiscalYear;
                                dest5.FiscalYearNumeric = src5.FiscalYearNumeric;
                                src6 = src5.Total;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Total = dest6;
                                }
                                src6 = src5.EscalationIndex;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureDecimal();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.EscalationIndex = dest6;
                                }
                                dest4.Years.Add(dest5);
                            }
                        }
                        src5 = src4.Notes;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureString>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureString();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Notes = dest5;
                        }
                        dest3.ORFO = dest4;
                    }
                    src4 = src3.Quantity;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.AccountQuantity();
                        src5 = src4.Development;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.AccountQuantityPhase();
                            if (src5.Years != null) {
                                dest5.Years = new SL.Tamarin.AccountQuantityYearCollection();
                                for (int i5 = 0; i5 < src5.Years.Count; i5++)
                                {
                                    src6 = src5.Years[i5];
                                    dest6 = new SL.Tamarin.AccountQuantityYear();
                                    dest6.FiscalYear = src6.FiscalYear;
                                    dest6.FiscalYearNumeric = src6.FiscalYearNumeric;
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureInteger>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureInteger();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    src7 = src6.Cost;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.Cost = dest7;
                                    }
                                    dest5.Years.Add(dest6);
                                }
                            }
                            src6 = src5.Total;
                            if (src6 != null) {
                                dest6 = new System.Nullable<SL.Orca.SecureInteger>();
                                dest6.HasValue = src6.HasValue;
                                src7 = src6.Value;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecureInteger();
                                    src8 = src7.SecurityDescriptor;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecurityDescriptor();
                                        dest7.SecurityDescriptor = dest8;
                                    }
                                    dest7.Value = src7.Value;
                                    dest6.Value = dest7;
                                }
                                dest5.Total = dest6;
                            }
                            dest4.Development = dest5;
                        }
                        src5 = src4.Production;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.AccountQuantityPhase();
                            if (src5.Years != null) {
                                dest5.Years = new SL.Tamarin.AccountQuantityYearCollection();
                                for (int i5 = 0; i5 < src5.Years.Count; i5++)
                                {
                                    src6 = src5.Years[i5];
                                    dest6 = new SL.Tamarin.AccountQuantityYear();
                                    dest6.FiscalYear = src6.FiscalYear;
                                    dest6.FiscalYearNumeric = src6.FiscalYearNumeric;
                                    src7 = src6.Total;
                                    if (src7 != null) {
                                        dest7 = new System.Nullable<SL.Orca.SecureInteger>();
                                        dest7.HasValue = src7.HasValue;
                                        src8 = src7.Value;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecureInteger();
                                            src9 = src8.SecurityDescriptor;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecurityDescriptor();
                                                dest8.SecurityDescriptor = dest9;
                                            }
                                            dest8.Value = src8.Value;
                                            dest7.Value = dest8;
                                        }
                                        dest6.Total = dest7;
                                    }
                                    src7 = src6.Cost;
                                    if (src7 != null) {
                                        dest7 = new SL.Tamarin.CostDollarAmountPair();
                                        src8 = src7.ThenYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.ThenYear = dest8;
                                        }
                                        src8 = src7.BaseYear;
                                        if (src8 != null) {
                                            dest8 = new System.Nullable<SL.Orca.SecureDecimal>();
                                            dest8.HasValue = src8.HasValue;
                                            src9 = src8.Value;
                                            if (src9 != null) {
                                                dest9 = new SL.Orca.SecureDecimal();
                                                src10 = src9.SecurityDescriptor;
                                                if (src10 != null) {
                                                    dest10 = new SL.Orca.SecurityDescriptor();
                                                    dest9.SecurityDescriptor = dest10;
                                                }
                                                dest9.Value = src9.Value;
                                                dest8.Value = dest9;
                                            }
                                            dest7.BaseYear = dest8;
                                        }
                                        dest6.Cost = dest7;
                                    }
                                    dest5.Years.Add(dest6);
                                }
                            }
                            src6 = src5.Total;
                            if (src6 != null) {
                                dest6 = new System.Nullable<SL.Orca.SecureInteger>();
                                dest6.HasValue = src6.HasValue;
                                src7 = src6.Value;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecureInteger();
                                    src8 = src7.SecurityDescriptor;
                                    if (src8 != null) {
                                        dest8 = new SL.Orca.SecurityDescriptor();
                                        dest7.SecurityDescriptor = dest8;
                                    }
                                    dest7.Value = src7.Value;
                                    dest6.Value = dest7;
                                }
                                dest5.Total = dest6;
                            }
                            dest4.Production = dest5;
                        }
                        dest3.Quantity = dest4;
                    }
                    dest2.Accounts.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.Funding = dest2;
        }
        src2 = src1.Cost;
        if (src2 != null) {
            dest2 = new SL.Tamarin.CostData();
            src3 = src2.RDTE;
            if (src3 != null) {
                dest3 = new SL.Tamarin.RDTECost();
                src4 = src3.Flyaway;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostFlyaway();
                    src5 = src4.Recurring;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostRecurring();
                        src6 = src5.EndItemRelated;
                        if (src6 != null) {
                            dest6 = new SL.Tamarin.CostDollarAmountPair();
                            src7 = src6.ThenYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.ThenYear = dest7;
                            }
                            src7 = src6.BaseYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.BaseYear = dest7;
                            }
                            dest5.EndItemRelated = dest6;
                        }
                        src6 = src5.NonEndItemRelated;
                        if (src6 != null) {
                            dest6 = new SL.Tamarin.CostDollarAmountPair();
                            src7 = src6.ThenYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.ThenYear = dest7;
                            }
                            src7 = src6.BaseYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.BaseYear = dest7;
                            }
                            dest5.NonEndItemRelated = dest6;
                        }
                        src6 = src5.Total;
                        if (src6 != null) {
                            dest6 = new SL.Tamarin.CostDollarAmountPair();
                            src7 = src6.ThenYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.ThenYear = dest7;
                            }
                            src7 = src6.BaseYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.BaseYear = dest7;
                            }
                            dest5.Total = dest6;
                        }
                        dest4.Recurring = dest5;
                    }
                    src5 = src4.Nonrecurring;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.Nonrecurring = dest5;
                    }
                    src5 = src4.Total;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.Total = dest5;
                    }
                    dest3.Flyaway = dest4;
                }
                src4 = src3.Support;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Support = dest4;
                }
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.RDTE = dest3;
            }
            src3 = src2.Procurement;
            if (src3 != null) {
                dest3 = new SL.Tamarin.ProcurementCost();
                src4 = src3.Flyaway;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostFlyaway();
                    src5 = src4.Recurring;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostRecurring();
                        src6 = src5.EndItemRelated;
                        if (src6 != null) {
                            dest6 = new SL.Tamarin.CostDollarAmountPair();
                            src7 = src6.ThenYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.ThenYear = dest7;
                            }
                            src7 = src6.BaseYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.BaseYear = dest7;
                            }
                            dest5.EndItemRelated = dest6;
                        }
                        src6 = src5.NonEndItemRelated;
                        if (src6 != null) {
                            dest6 = new SL.Tamarin.CostDollarAmountPair();
                            src7 = src6.ThenYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.ThenYear = dest7;
                            }
                            src7 = src6.BaseYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.BaseYear = dest7;
                            }
                            dest5.NonEndItemRelated = dest6;
                        }
                        src6 = src5.Total;
                        if (src6 != null) {
                            dest6 = new SL.Tamarin.CostDollarAmountPair();
                            src7 = src6.ThenYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.ThenYear = dest7;
                            }
                            src7 = src6.BaseYear;
                            if (src7 != null) {
                                dest7 = new System.Nullable<SL.Orca.SecureDecimal>();
                                dest7.HasValue = src7.HasValue;
                                src8 = src7.Value;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecureDecimal();
                                    src9 = src8.SecurityDescriptor;
                                    if (src9 != null) {
                                        dest9 = new SL.Orca.SecurityDescriptor();
                                        dest8.SecurityDescriptor = dest9;
                                    }
                                    dest8.Value = src8.Value;
                                    dest7.Value = dest8;
                                }
                                dest6.BaseYear = dest7;
                            }
                            dest5.Total = dest6;
                        }
                        dest4.Recurring = dest5;
                    }
                    src5 = src4.Nonrecurring;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.Nonrecurring = dest5;
                    }
                    src5 = src4.Total;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.Total = dest5;
                    }
                    dest3.Flyaway = dest4;
                }
                src4 = src3.Support;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.ProcurementCostSupport();
                    src5 = src4.OtherSupport;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.OtherSupport = dest5;
                    }
                    src5 = src4.InitialSpares;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.InitialSpares = dest5;
                    }
                    src5 = src4.Total;
                    if (src5 != null) {
                        dest5 = new SL.Tamarin.CostDollarAmountPair();
                        src6 = src5.ThenYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.ThenYear = dest6;
                        }
                        src6 = src5.BaseYear;
                        if (src6 != null) {
                            dest6 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest6.HasValue = src6.HasValue;
                            src7 = src6.Value;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecureDecimal();
                                src8 = src7.SecurityDescriptor;
                                if (src8 != null) {
                                    dest8 = new SL.Orca.SecurityDescriptor();
                                    dest7.SecurityDescriptor = dest8;
                                }
                                dest7.Value = src7.Value;
                                dest6.Value = dest7;
                            }
                            dest5.BaseYear = dest6;
                        }
                        dest4.Total = dest5;
                    }
                    dest3.Support = dest4;
                }
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.Procurement = dest3;
            }
            src3 = src2.MILCON;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostSimpleCategory();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.MILCON = dest3;
            }
            src3 = src2.OM;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostSimpleCategory();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.OM = dest3;
            }
            src3 = src2.WCFC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostSimpleCategory();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.WCFC = dest3;
            }
            src3 = src2.WCFO;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostSimpleCategory();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.WCFO = dest3;
            }
            src3 = src2.ORFC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostSimpleCategory();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.ORFC = dest3;
            }
            src3 = src2.ORFO;
            if (src3 != null) {
                dest3 = new SL.Tamarin.CostSimpleCategory();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.Total = dest4;
                }
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.ORFO = dest3;
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.Cost = dest2;
        }
        src2 = src1.Quantity;
        if (src2 != null) {
            dest2 = new SL.Tamarin.QuantityByPhaseWithNotes();
            src3 = src2.Development;
            if (src3 != null) {
                dest3 = new SL.Tamarin.QuantityTotal();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Total = dest4;
                }
                dest2.Development = dest3;
            }
            src3 = src2.Production;
            if (src3 != null) {
                dest3 = new SL.Tamarin.QuantityTotal();
                src4 = src3.Total;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Total = dest4;
                }
                dest2.Production = dest3;
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.Quantity = dest2;
        }
        src2 = src1.UnitCost;
        if (src2 != null) {
            dest2 = new SL.Tamarin.UnitCostData();
            dest2.DollarPrecision = src2.DollarPrecision;
            src3 = src2.PAUC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UnitCostAmount();
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.PAUC = dest3;
            }
            src3 = src2.APUC;
            if (src3 != null) {
                dest3 = new SL.Tamarin.UnitCostAmount();
                src4 = src3.Threshold;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.Threshold = dest4;
                }
                dest2.APUC = dest3;
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.UnitCost = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.CostDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractAuxiliaryDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractAuxiliaryDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractAuxiliaryDataPoint();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.DollarPrecision = src0.DollarPrecision;
src1 = src0.ModificationNumber;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.ModificationNumber = dest1;
}
src1 = src0.ModificationDate;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.ModificationDate = dest1;
}
src1 = src0.AwardDate;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.AwardDate = dest1;
}
src1 = src0.IBRDate;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.IBRDate = dest1;
}
if (src0.CriticalMilestones != null) {
    dest0.CriticalMilestones = new SL.Tamarin.SecureCollection<SL.Tamarin.CriticalMilestone>();
    for (int i0 = 0; i0 < src0.CriticalMilestones.Count; i0++)
    {
        src1 = src0.CriticalMilestones[i0];
        dest1 = new SL.Tamarin.CriticalMilestone();
        src2 = src1.Name;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Name = dest2;
        }
        src2 = src1.ScheduledDate;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureDateTime>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureDateTime();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.ScheduledDate = dest2;
        }
        dest0.CriticalMilestones.Add(dest1);
    }
}
src1 = src0.OriginalQuantity;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureInteger>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureInteger();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.OriginalQuantity = dest1;
}
src1 = src0.ScheduledDelivery;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureInteger>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureInteger();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.ScheduledDelivery = dest1;
}
src1 = src0.Delivery;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureInteger>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureInteger();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Delivery = dest1;
}
src1 = src0.OriginalTargetPrice;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.OriginalTargetPrice = dest1;
}
src1 = src0.OriginalCeilingPrice;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.OriginalCeilingPrice = dest1;
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractAuxiliaryDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryParameterFieldRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryParameterFieldRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryParameterFieldRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryParameterFieldKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.FieldType Convert(this Us.Mil.Osd.Acq.Damir.Orca.FieldType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.FieldType();
dest0.Name = src0.Name;
dest0.SQLDeclaration = src0.SQLDeclaration;
dest0.SQLCollation = src0.SQLCollation;
dest0.XMLBaseType = src0.XMLBaseType;
dest0.XMLBaseTypeNamespace = src0.XMLBaseTypeNamespace;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.FieldTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.OrganizationRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.OrganizationRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.OrganizationRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.OrganizationKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.DAESGroup Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.DAESGroup src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.DAESGroup();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.DAESGroupKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentOfficeIndicatorPriority Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentOfficeIndicatorPriority src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentOfficeIndicatorPriority();
dest0.Office = src0.Office;
src1 = src0.Indicator;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentIndicatorEnum();
        dest1.Value = dest2;
    }
    dest0.Indicator = dest1;
}
dest0.Priority = src0.Priority;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentOfficeIndicatorPriorityKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractEstimateTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractEstimateTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractEstimateTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractEstimateTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractEstimateType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractEstimateType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractEstimateType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContractEstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractEstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractEstimateTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.LogRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.LogRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.LogRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.LogKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.ErrorMessageRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.ErrorMessageRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.ErrorMessageRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.ErrorMessageKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SBMasterDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SBMasterDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SBMasterDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SBMasterDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARPerformanceDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARPerformanceDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARPerformanceDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARPerformanceSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARPerformanceSubprogram();
        dest1.URI = src1.URI;
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.SARPerformanceSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.SARPerformanceSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                if (src2.Characteristics != null) {
                    dest2.Characteristics = new SL.Tamarin.SARPerformanceCharacteristicCollection();
                    for (int i2 = 0; i2 < src2.Characteristics.Count; i2++)
                    {
                        src3 = src2.Characteristics[i2];
                        dest3 = new SL.Tamarin.SARPerformanceCharacteristic();
                        dest3.URI = src3.URI;
                        dest3.ChangeNumber = src3.ChangeNumber;
                        dest2.Characteristics.Add(dest3);
                    }
                }
                if (src2.Changes != null) {
                    dest2.Changes = new SL.Tamarin.SARPerformanceChangeCollection();
                    for (int i2 = 0; i2 < src2.Changes.Count; i2++)
                    {
                        src3 = src2.Changes[i2];
                        dest3 = new SL.Tamarin.SARPerformanceChange();
                        dest3.Number = src3.Number;
                        src4 = src3.Explanation;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Explanation = dest4;
                        }
                        dest2.Changes.Add(dest3);
                    }
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARPerformanceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MissionDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MissionDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MissionDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MissionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.FMSDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.FMSDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.FMSDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.FMSSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.FMSSubprogram();
        dest1.URI = src1.URI;
        dest1.DollarPrecision = src1.DollarPrecision;
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.FMSSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.FMSSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                if (src2.Sales != null) {
                    dest2.Sales = new SL.Tamarin.SecureCollection<SL.Tamarin.FMSSale>();
                    for (int i2 = 0; i2 < src2.Sales.Count; i2++)
                    {
                        src3 = src2.Sales[i2];
                        dest3 = new SL.Tamarin.FMSSale();
                        src4 = src3.Country;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Country = dest4;
                        }
                        src4 = src3.DateOfSale;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureDateTime();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.DateOfSale = dest4;
                        }
                        src4 = src3.Quantity;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureInteger();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Quantity = dest4;
                        }
                        src4 = src3.Cost;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureDecimal();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Cost = dest4;
                        }
                        src4 = src3.Notes;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Notes = dest4;
                        }
                        dest2.Sales.Add(dest3);
                    }
                }
                src3 = src2.Notes;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.Notes = dest3;
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.FMSDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractSectionDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractSectionDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractSectionDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractSectionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Service Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Service src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Service();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ServiceKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.OrganizationMemberRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.OrganizationMemberRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.OrganizationMemberRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.OrganizationMemberKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.DAESStatusRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.DAESStatusRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.DAESStatusRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.DAESStatusKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.Origin Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.Origin src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.Origin();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new SL.Tamarin.OriginEnum();
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OriginKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.FederalAccount Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.FederalAccount src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.FederalAccount();
dest0.Symbol = src0.Symbol;
src1 = src0.MajorCostCategory;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.MajorCostCategoryEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.MajorCostCategoryEnum();
        dest1.Value = dest2;
    }
    dest0.MajorCostCategory = dest1;
}
dest0.DisplaySymbol = src0.DisplaySymbol;
dest0.Name = src0.Name;
dest0.FederalAgency = src0.FederalAgency;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.FederalAccountKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContractTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractPerformanceReportType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractPerformanceReportType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractPerformanceReportType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContractPerformanceReportTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractPerformanceReportTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractPerformanceReportTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.Setting Convert(this Us.Mil.Osd.Acq.Damir.Orca.Setting src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.Setting();
dest0.Name = src0.Name;
dest0.Value = src0.Value;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.SettingKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryErrorMessage Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryErrorMessage src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryErrorMessage();
dest0.Parent = src0.Parent;
dest0.Code = src0.Code;
dest0.Message = src0.Message;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryErrorMessageKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramSupportingComponent Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramSupportingComponent src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramSupportingComponent();
dest0.Program = src0.Program;
dest0.SupportingComponent = src0.SupportingComponent;
dest0.Position = src0.Position;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramSupportingComponentKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramSupportingComponentHistoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramSupportingComponentHistoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramSupportingComponentHistoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramSupportingComponentHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARContractDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARContractDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARContractDataPointRevocation();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARContractDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PMAssessmentDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PMAssessmentDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PMAssessmentDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.PMAssessmentSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.PMAssessmentSubprogram();
        dest1.URI = src1.URI;
        if (src1.Periods != null) {
            dest1.Periods = new SL.Tamarin.PMAssessmentPeriodCollection();
            for (int i1 = 0; i1 < src1.Periods.Count; i1++)
            {
                src2 = src1.Periods[i1];
                dest2 = new SL.Tamarin.PMAssessmentPeriod();
                dest2.RelativeMonth = src2.RelativeMonth;
                if (src2.Assessments != null) {
                    dest2.Assessments = new SL.Tamarin.PMAssessmentAssessmentCollection();
                    for (int i2 = 0; i2 < src2.Assessments.Count; i2++)
                    {
                        src3 = src2.Assessments[i2];
                        dest3 = new SL.Tamarin.PMAssessmentAssessment();
                        src4 = src3.Indicator;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.AssessmentIndicatorEnum();
                                dest4.Value = dest5;
                            }
                            dest3.Indicator = dest4;
                        }
                        src4 = src3.Type;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Tamarin.AssessmentTypeEnum>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.AssessmentTypeEnum();
                                dest4.Value = dest5;
                            }
                            dest3.Type = dest4;
                        }
                        src4 = src3.Rating;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.AssessmentRatingEnum>>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureEnum<SL.Tamarin.AssessmentRatingEnum>();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest4.Value = dest5;
                            }
                            dest3.Rating = dest4;
                        }
                        src4 = src3.Explanation;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Explanation = dest4;
                        }
                        dest2.Assessments.Add(dest3);
                    }
                }
                dest1.Periods.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PMAssessmentDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.LCSDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.LCSDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.LCSDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.LCSSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.LCSSubprogram();
        dest1.URI = src1.URI;
        dest1.DollarPrecision = src1.DollarPrecision;
        if (src1.Elements != null) {
            dest1.Elements = new SL.Tamarin.SecureCollection<SL.Tamarin.LCSElement>();
            for (int i1 = 0; i1 < src1.Elements.Count; i1++)
            {
                src2 = src1.Elements[i1];
                dest2 = new SL.Tamarin.LCSElement();
                src3 = src2.Name;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.Name = dest3;
                }
                src3 = src2.MaterielAvailability;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.MaterielAvailability();
                    src4 = src3.OriginalBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielAvailabilityBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.OriginalBaseline = dest4;
                    }
                    src4 = src3.CurrentBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielAvailabilityBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.CurrentBaseline = dest4;
                    }
                    src4 = src3.CurrentEstimate;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureDecimal();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.CurrentEstimate = dest4;
                    }
                    src4 = src3.Description;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Description = dest4;
                    }
                    dest2.MaterielAvailability = dest3;
                }
                src3 = src2.MaterielReliability;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.MaterielHourDuration();
                    src4 = src3.OriginalBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielHourDurationBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.OriginalBaseline = dest4;
                    }
                    src4 = src3.CurrentBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielHourDurationBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.CurrentBaseline = dest4;
                    }
                    src4 = src3.CurrentEstimate;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureDecimal();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.CurrentEstimate = dest4;
                    }
                    src4 = src3.Description;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Description = dest4;
                    }
                    dest2.MaterielReliability = dest3;
                }
                src3 = src2.MaterielReliabilityPercentage;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.MaterielReliabilityPercentage();
                    src4 = src3.OriginalBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielReliabilityPercentageBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.OriginalBaseline = dest4;
                    }
                    src4 = src3.CurrentBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielReliabilityPercentageBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.CurrentBaseline = dest4;
                    }
                    src4 = src3.CurrentEstimate;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureDecimal();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.CurrentEstimate = dest4;
                    }
                    src4 = src3.Description;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Description = dest4;
                    }
                    dest2.MaterielReliabilityPercentage = dest3;
                }
                src3 = src2.OwnershipCost;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OwnershipCost();
                    src4 = src3.OriginalBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.OwnershipCostBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.OriginalBaseline = dest4;
                    }
                    src4 = src3.CurrentBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.OwnershipCostBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.CurrentBaseline = dest4;
                    }
                    src4 = src3.CurrentEstimate;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureDecimal();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.CurrentEstimate = dest4;
                    }
                    src4 = src3.Description;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Description = dest4;
                    }
                    dest2.OwnershipCost = dest3;
                }
                src3 = src2.MeanDownTime;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.MaterielHourDuration();
                    src4 = src3.OriginalBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielHourDurationBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.OriginalBaseline = dest4;
                    }
                    src4 = src3.CurrentBaseline;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MaterielHourDurationBaseline();
                        src5 = src4.Date;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Date = dest5;
                        }
                        src5 = src4.Goal;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Goal = dest5;
                        }
                        dest3.CurrentBaseline = dest4;
                    }
                    src4 = src3.CurrentEstimate;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureDecimal();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.CurrentEstimate = dest4;
                    }
                    src4 = src3.Description;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Description = dest4;
                    }
                    dest2.MeanDownTime = dest3;
                }
                src3 = src2.Notes;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.Notes = dest3;
                }
                dest1.Elements.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.LCSDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ExecutiveSummaryDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ExecutiveSummaryDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ExecutiveSummaryDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ExecutiveSummaryDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.DAESStatus Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.DAESStatus src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.DAESStatus();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.DAESStatusKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARCostVarianceCategory Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARCostVarianceCategory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARCostVarianceCategory();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SARCostVarianceCategoryEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARCostVarianceCategoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MajorMilestoneRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MajorMilestoneRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MajorMilestoneRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MajorMilestoneKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.FederalAgency Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.FederalAgency src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.FederalAgency();
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.FederalAgencyKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractSystemPhase Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractSystemPhase src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractSystemPhase();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContractSystemPhaseEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractSystemPhaseEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractSystemPhaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContactTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContactTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContactTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContactTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryErrorMessageRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryErrorMessageRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryErrorMessageRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryErrorMessageKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Component Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Component src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Component();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ComponentKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARCostVarianceWorkDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARCostVarianceWorkDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARCostVarianceWorkDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARCostVarianceWorkDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARBaseYearConversionDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARBaseYearConversionDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARBaseYearConversionDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARBaseYearConversionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PerformanceDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PerformanceDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PerformanceDataPoint();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.PerformanceSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.PerformanceSubprogram();
        dest1.URI = src1.URI;
        src2 = src1.HasSIPRNETBreaches;
        if (src2 != null) {
            dest2 = new SL.Orca.SecureBoolean();
            src3 = src2.SecurityDescriptor;
            if (src3 != null) {
                dest3 = new SL.Orca.SecurityDescriptor();
                dest2.SecurityDescriptor = dest3;
            }
            dest2.Value = src2.Value;
            dest1.HasSIPRNETBreaches = dest2;
        }
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.PerformanceSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.PerformanceSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                if (src2.Characteristics != null) {
                    dest2.Characteristics = new SL.Tamarin.PerformanceCharacteristicCollection();
                    for (int i2 = 0; i2 < src2.Characteristics.Count; i2++)
                    {
                        src3 = src2.Characteristics[i2];
                        dest3 = new SL.Tamarin.PerformanceCharacteristic();
                        dest3.URI = src3.URI;
                        dest3.Header = src3.Header;
                        src4 = src3.Name;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Name = dest4;
                        }
                        src4 = src3.CriticalTechnologyName;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.CriticalTechnologyName = dest4;
                        }
                        src4 = src3.Estimate;
                        if (src4 != null) {
                            dest4 = new SL.Tamarin.CharacteristicValue();
                            src5 = src4.Placeholder;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest5.Value = dest6;
                                }
                                dest4.Placeholder = dest5;
                            }
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureString>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureString();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest6.Value = src6.Value;
                                    dest5.Value = dest6;
                                }
                                dest4.Value = dest5;
                            }
                            dest3.Estimate = dest4;
                        }
                        src4 = src3.Threshold;
                        if (src4 != null) {
                            dest4 = new SL.Tamarin.CharacteristicValue();
                            src5 = src4.Placeholder;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest5.Value = dest6;
                                }
                                dest4.Placeholder = dest5;
                            }
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new System.Nullable<SL.Orca.SecureString>();
                                dest5.HasValue = src5.HasValue;
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecureString();
                                    src7 = src6.SecurityDescriptor;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecurityDescriptor();
                                        dest6.SecurityDescriptor = dest7;
                                    }
                                    dest6.Value = src6.Value;
                                    dest5.Value = dest6;
                                }
                                dest4.Value = dest5;
                            }
                            dest3.Threshold = dest4;
                        }
                        src4 = src3.Demonstrated;
                        if (src4 != null) {
                            dest4 = new SL.Tamarin.DemonstratedPerformance();
                            src5 = src4.Measurement;
                            if (src5 != null) {
                                dest5 = new SL.Tamarin.CharacteristicValue();
                                src6 = src5.Placeholder;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest6.Value = dest7;
                                    }
                                    dest5.Placeholder = dest6;
                                }
                                src6 = src5.Value;
                                if (src6 != null) {
                                    dest6 = new System.Nullable<SL.Orca.SecureString>();
                                    dest6.HasValue = src6.HasValue;
                                    src7 = src6.Value;
                                    if (src7 != null) {
                                        dest7 = new SL.Orca.SecureString();
                                        src8 = src7.SecurityDescriptor;
                                        if (src8 != null) {
                                            dest8 = new SL.Orca.SecurityDescriptor();
                                            dest7.SecurityDescriptor = dest8;
                                        }
                                        dest7.Value = src7.Value;
                                        dest6.Value = dest7;
                                    }
                                    dest5.Value = dest6;
                                }
                                dest4.Measurement = dest5;
                            }
                            dest3.Demonstrated = dest4;
                        }
                        if (src3.FootnoteNumbers != null) {
                            dest3.FootnoteNumbers = new SL.Tamarin.SecureCollection<SL.Tamarin.FootnoteNumberItem>();
                            for (int i3 = 0; i3 < src3.FootnoteNumbers.Count; i3++)
                            {
                                src4 = src3.FootnoteNumbers[i3];
                                dest4 = new SL.Tamarin.FootnoteNumberItem();
                                dest4.Value = src4.Value;
                                dest3.FootnoteNumbers.Add(dest4);
                            }
                        }
                        src4 = src3.IsBreached;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureBoolean>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureBoolean();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.IsBreached = dest4;
                        }
                        dest2.Characteristics.Add(dest3);
                    }
                }
                if (src2.AcronymDefinitions != null) {
                    dest2.AcronymDefinitions = new SL.Tamarin.AcronymDefinitionCollection();
                    for (int i2 = 0; i2 < src2.AcronymDefinitions.Count; i2++)
                    {
                        src3 = src2.AcronymDefinitions[i2];
                        dest3 = new SL.Tamarin.AcronymDefinition();
                        dest3.Acronym = src3.Acronym;
                        src4 = src3.Definition;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Definition = dest4;
                        }
                        dest2.AcronymDefinitions.Add(dest3);
                    }
                }
                src3 = src2.Notes;
                if (src3 != null) {
                    dest3 = new System.Nullable<SL.Orca.SecureString>();
                    dest3.HasValue = src3.HasValue;
                    src4 = src3.Value;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureString();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.Value = dest4;
                    }
                    dest2.Notes = dest3;
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PerformanceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractEstimateDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractEstimateDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractEstimateDataPointRevocation();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Type;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContractEstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractEstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Type = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractEstimateDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    src2 = src1.Type;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.ContractEstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.ContractEstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.Type = dest2;
    }
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.FieldTypeXMLRestrictionRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.FieldTypeXMLRestrictionRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.FieldTypeXMLRestrictionRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.FieldTypeXMLRestrictionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SecurityGroupRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SecurityGroupRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SecurityGroupRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SecurityGroupKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramStatus Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramStatus src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramStatus();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramStatusKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.PrivilegeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.PrivilegeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.PrivilegeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.PrivilegeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.DataSource Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.DataSource src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.DataSource();
dest0.URI = src0.URI;
dest0.Name = src0.Name;
dest0.Priority = src0.Priority;
dest0.PrivateDomain = src0.PrivateDomain;
dest0.Notes = src0.Notes;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.DataSourceKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Contact Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Contact src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Contact();
dest0.Parent = src0.Parent;
dest0.Organization = src0.Organization;
dest0.Prefix = src0.Prefix;
dest0.FirstName = src0.FirstName;
dest0.MiddleName = src0.MiddleName;
dest0.LastName = src0.LastName;
dest0.Suffix = src0.Suffix;
dest0.IsContractor = src0.IsContractor;
dest0.ContractorName = src0.ContractorName;
dest0.Location = src0.Location;
dest0.Address = src0.Address;
dest0.Phone = src0.Phone;
dest0.AlternatePhone = src0.AlternatePhone;
dest0.FAX = src0.FAX;
dest0.DSNPhone = src0.DSNPhone;
dest0.DSNFAX = src0.DSNFAX;
dest0.Email = src0.Email;
dest0.SIPREmail = src0.SIPREmail;
dest0.UserID = src0.UserID;
dest0.SIPRUserID = src0.SIPRUserID;
dest0.LockoutDate = src0.LockoutDate;
dest0.Notes = src0.Notes;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ContactKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ACATRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ACATRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ACATRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ACATKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionHistory Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionHistory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionHistory();
dest0.Submission = src0.Submission;
src1 = src0.Action;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SubmissionHistoryActionEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SubmissionHistoryActionEnum();
        dest1.Value = dest2;
    }
    dest0.Action = dest1;
}
dest0.ActionUser = src0.ActionUser;
dest0.ActionDomain = src0.ActionDomain;
dest0.ActionTime = src0.ActionTime;
dest0.NewDomain = src0.NewDomain;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.APBPhase Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.APBPhase src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.APBPhase();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.APBPhaseEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.APBPhaseEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.APBPhaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.Query Convert(this Us.Mil.Osd.Acq.Damir.Orca.Query src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.Query();
dest0.URI = src0.URI;
dest0.Name = src0.Name;
dest0.Description = src0.Description;
dest0.IsReadOnly = src0.IsReadOnly;
dest0.IsRestricted = src0.IsRestricted;
dest0.IsCacheable = src0.IsCacheable;
dest0.IsDurable = src0.IsDurable;
dest0.IsPublic = src0.IsPublic;
dest0.SQL = src0.SQL;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.JCARevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.JCARevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.JCARevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.JCAKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.JCA Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.JCA src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.JCA();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.JCAKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARScheduleDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARScheduleDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARScheduleDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARScheduleDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentSubmissionRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentSubmissionRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentSubmissionRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentSubmissionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.FieldTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.FieldTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.FieldTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.FieldTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SubprogramRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SubprogramRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SubprogramRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SubprogramKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SecurityGroupMember Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SecurityGroupMember src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SecurityGroupMember();
dest0.SecurityGroup = src0.SecurityGroup;
dest0.Organization = src0.Organization;
dest0.IsRecursive = src0.IsRecursive;
dest0.Contact = src0.Contact;
dest0.IsAdministrator = src0.IsAdministrator;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SecurityGroupMemberKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.OrganizationMember Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.OrganizationMember src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.OrganizationMember();
dest0.Organization = src0.Organization;
dest0.Contact = src0.Contact;
dest0.IsAdministrator = src0.IsAdministrator;
dest0.IsPrimary = src0.IsPrimary;
dest0.Role = src0.Role;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.OrganizationMemberKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ContactRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ContactRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ContactRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ContactKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.CommodityTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.CommodityTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.CommodityTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.CommodityTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Certificate Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Certificate src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Certificate();
dest0.Subject = src0.Subject;
dest0.Contact = src0.Contact;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.CertificateKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OriginRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OriginRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OriginRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OriginKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MajorMilestone Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MajorMilestone src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MajorMilestone();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.MajorMilestoneEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.MajorMilestoneEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MajorMilestoneKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MajorCostCategoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MajorCostCategoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MajorCostCategoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MajorCostCategoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.AssessmentRating Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.AssessmentRating src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.AssessmentRating();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentRatingEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentRatingEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.AssessmentRatingKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramSynonymRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramSynonymRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramSynonymRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramSynonymKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.NDARevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.NDARevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.NDARevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.NDAKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARPerformanceDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARPerformanceDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARPerformanceDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARPerformanceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.CostDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.CostDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.CostDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.CostDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryParameter Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryParameter src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryParameter();
dest0.Parent = src0.Parent;
dest0.Position = src0.Position;
dest0.Name = src0.Name;
dest0.IsRequired = src0.IsRequired;
dest0.FieldType = src0.FieldType;
dest0.IsSecure = src0.IsSecure;
dest0.ObjectType = src0.ObjectType;
dest0.IsObjectList = src0.IsObjectList;
dest0.IsWritten = src0.IsWritten;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryParameterKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SecurityGroupPrivilege Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SecurityGroupPrivilege src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SecurityGroupPrivilege();
dest0.SecurityGroup = src0.SecurityGroup;
dest0.DataType = src0.DataType;
dest0.Privilege = src0.Privilege;
dest0.RestrictionType = src0.RestrictionType;
dest0.RestrictionValue = src0.RestrictionValue;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SecurityGroupPrivilegeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Organization Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Organization src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Organization();
dest0.Parent = src0.Parent;
dest0.Name = src0.Name;
dest0.FullName = src0.FullName;
dest0.Notes = src0.Notes;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.OrganizationKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SBPhaseRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SBPhaseRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SBPhaseRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SBPhaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARScheduleDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARScheduleDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARScheduleDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARScheduleSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARScheduleSubprogram();
        dest1.URI = src1.URI;
        if (src1.Sections != null) {
            dest1.Sections = new SL.Tamarin.SARScheduleSectionCollection();
            for (int i1 = 0; i1 < src1.Sections.Count; i1++)
            {
                src2 = src1.Sections[i1];
                dest2 = new SL.Tamarin.SARScheduleSection();
                src3 = src2.Origin;
                if (src3 != null) {
                    dest3 = new SL.Tamarin.OriginEnum();
                    dest2.Origin = dest3;
                }
                if (src2.Milestones != null) {
                    dest2.Milestones = new SL.Tamarin.SARScheduleMilestoneCollection();
                    for (int i2 = 0; i2 < src2.Milestones.Count; i2++)
                    {
                        src3 = src2.Milestones[i2];
                        dest3 = new SL.Tamarin.SARScheduleMilestone();
                        dest3.URI = src3.URI;
                        dest3.ChangeNumber = src3.ChangeNumber;
                        dest2.Milestones.Add(dest3);
                    }
                }
                if (src2.Changes != null) {
                    dest2.Changes = new SL.Tamarin.SARScheduleChangeCollection();
                    for (int i2 = 0; i2 < src2.Changes.Count; i2++)
                    {
                        src3 = src2.Changes[i2];
                        dest3 = new SL.Tamarin.SARScheduleChange();
                        dest3.Number = src3.Number;
                        src4 = src3.Explanation;
                        if (src4 != null) {
                            dest4 = new System.Nullable<SL.Orca.SecureString>();
                            dest4.HasValue = src4.HasValue;
                            src5 = src4.Value;
                            if (src5 != null) {
                                dest5 = new SL.Orca.SecureString();
                                src6 = src5.SecurityDescriptor;
                                if (src6 != null) {
                                    dest6 = new SL.Orca.SecurityDescriptor();
                                    dest5.SecurityDescriptor = dest6;
                                }
                                dest5.Value = src5.Value;
                                dest4.Value = dest5;
                            }
                            dest3.Explanation = dest4;
                        }
                        dest2.Changes.Add(dest3);
                    }
                }
                dest1.Sections.Add(dest2);
            }
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARScheduleDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractSystemPhaseRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractSystemPhaseRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractSystemPhaseRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractSystemPhaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractPerformanceReportTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractPerformanceReportTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractPerformanceReportTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractPerformanceReportTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractEstimateDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractEstimateDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractEstimateDataPoint();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Type;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.ContractEstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractEstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Type = dest1;
}
dest0.DollarPrecision = src0.DollarPrecision;
src1 = src0.ECD;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.ECD = dest1;
}
src1 = src0.SignificantEffortECD;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDateTime>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDateTime();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.SignificantEffortECD = dest1;
}
src1 = src0.EAC;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.EAC = dest1;
}
src1 = src0.BestCaseEAC;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.BestCaseEAC = dest1;
}
src1 = src0.WorstCaseEAC;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.WorstCaseEAC = dest1;
}
src1 = src0.EstimatedPrice;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.EstimatedPrice = dest1;
}
src1 = src0.EstimatedCeilingPrice;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.EstimatedCeilingPrice = dest1;
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractEstimateDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    src2 = src1.Type;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.ContractEstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.ContractEstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.Type = dest2;
    }
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.APBPhaseRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.APBPhaseRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.APBPhaseRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.APBPhaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.ErrorMessage Convert(this Us.Mil.Osd.Acq.Damir.Orca.ErrorMessage src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.ErrorMessage();
dest0.Code = src0.Code;
dest0.Message = src0.Message;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.ErrorMessageKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.UCRDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.UCRDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.UCRDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.UCRDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.TrackToBudgetDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.TrackToBudgetDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.TrackToBudgetDataPoint();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.TrackToBudgetSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.TrackToBudgetSubprogram();
        dest1.URI = src1.URI;
        src2 = src1.RDTE;
        if (src2 != null) {
            dest2 = new SL.Tamarin.TrackToBudgetRDTE();
            if (src2.LineItems != null) {
                dest2.LineItems = new SL.Tamarin.SecureCollection<SL.Tamarin.TrackToBudgetRDTELineItem>();
                for (int i2 = 0; i2 < src2.LineItems.Count; i2++)
                {
                    src3 = src2.LineItems[i2];
                    dest3 = new SL.Tamarin.TrackToBudgetRDTELineItem();
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.BudgetActivity;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.BudgetActivity = dest4;
                    }
                    src4 = src3.ProgramElement;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.ProgramElement = dest4;
                    }
                    src4 = src3.Project;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Project = dest4;
                    }
                    src4 = src3.Name;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Name = dest4;
                    }
                    src4 = src3.IsShared;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsShared = dest4;
                    }
                    src4 = src3.IsSunk;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsSunk = dest4;
                    }
                    src4 = src3.Notes;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Notes = dest4;
                    }
                    dest2.LineItems.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.RDTE = dest2;
        }
        src2 = src1.Procurement;
        if (src2 != null) {
            dest2 = new SL.Tamarin.TrackToBudgetProcurement();
            if (src2.LineItems != null) {
                dest2.LineItems = new SL.Tamarin.SecureCollection<SL.Tamarin.TrackToBudgetProcurementLineItem>();
                for (int i2 = 0; i2 < src2.LineItems.Count; i2++)
                {
                    src3 = src2.LineItems[i2];
                    dest3 = new SL.Tamarin.TrackToBudgetProcurementLineItem();
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.BudgetActivity;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.BudgetActivity = dest4;
                    }
                    src4 = src3.ProgramElement;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.ProgramElement = dest4;
                    }
                    src4 = src3.Item;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Item = dest4;
                    }
                    src4 = src3.Name;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Name = dest4;
                    }
                    src4 = src3.IsShared;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsShared = dest4;
                    }
                    src4 = src3.IsSunk;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsSunk = dest4;
                    }
                    src4 = src3.Notes;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Notes = dest4;
                    }
                    dest2.LineItems.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.Procurement = dest2;
        }
        src2 = src1.MILCON;
        if (src2 != null) {
            dest2 = new SL.Tamarin.TrackToBudgetMILCON();
            if (src2.LineItems != null) {
                dest2.LineItems = new SL.Tamarin.SecureCollection<SL.Tamarin.TrackToBudgetMILCONLineItem>();
                for (int i2 = 0; i2 < src2.LineItems.Count; i2++)
                {
                    src3 = src2.LineItems[i2];
                    dest3 = new SL.Tamarin.TrackToBudgetMILCONLineItem();
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.BudgetActivity;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.BudgetActivity = dest4;
                    }
                    src4 = src3.ProgramElement;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.ProgramElement = dest4;
                    }
                    src4 = src3.Project;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Project = dest4;
                    }
                    src4 = src3.Name;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Name = dest4;
                    }
                    src4 = src3.IsShared;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsShared = dest4;
                    }
                    src4 = src3.IsSunk;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsSunk = dest4;
                    }
                    src4 = src3.Notes;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Notes = dest4;
                    }
                    dest2.LineItems.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.MILCON = dest2;
        }
        src2 = src1.OM;
        if (src2 != null) {
            dest2 = new SL.Tamarin.TrackToBudgetOM();
            if (src2.LineItems != null) {
                dest2.LineItems = new SL.Tamarin.SecureCollection<SL.Tamarin.TrackToBudgetOMLineItem>();
                for (int i2 = 0; i2 < src2.LineItems.Count; i2++)
                {
                    src3 = src2.LineItems[i2];
                    dest3 = new SL.Tamarin.TrackToBudgetOMLineItem();
                    src4 = src3.Account;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Account = dest4;
                    }
                    src4 = src3.BudgetActivity;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.BudgetActivity = dest4;
                    }
                    src4 = src3.ProgramElement;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.ProgramElement = dest4;
                    }
                    src4 = src3.SubactivityGroup;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.SubactivityGroup = dest4;
                    }
                    src4 = src3.Name;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Name = dest4;
                    }
                    src4 = src3.IsShared;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsShared = dest4;
                    }
                    src4 = src3.IsSunk;
                    if (src4 != null) {
                        dest4 = new SL.Orca.SecureBoolean();
                        src5 = src4.SecurityDescriptor;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecurityDescriptor();
                            dest4.SecurityDescriptor = dest5;
                        }
                        dest4.Value = src4.Value;
                        dest3.IsSunk = dest4;
                    }
                    src4 = src3.Notes;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Orca.SecureString>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Orca.SecureString();
                            src6 = src5.SecurityDescriptor;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecurityDescriptor();
                                dest5.SecurityDescriptor = dest6;
                            }
                            dest5.Value = src5.Value;
                            dest4.Value = dest5;
                        }
                        dest3.Notes = dest4;
                    }
                    dest2.LineItems.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.OM = dest2;
        }
        src2 = src1.Notes;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Notes = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.TrackToBudgetDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARContractDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARContractDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARContractDataPoint();
dest0.Program = src0.Program;
dest0.Number = src0.Number;
dest0.EffortNumber = src0.EffortNumber;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.DollarPrecision = src0.DollarPrecision;
src1 = src0.Category;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.MajorCostCategoryEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.MajorCostCategoryEnum();
        dest1.Value = dest2;
    }
    dest0.Category = dest1;
}
src1 = src0.CV;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.CV = dest1;
}
src1 = src0.SV;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureDecimal>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureDecimal();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.SV = dest1;
}
src1 = src0.NunnMcCurdy;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARContractNunnMcCurdy();
    src2 = src1.CVPercent;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.CVPercent = dest2;
    }
    src2 = src1.SVPercent;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.SVPercent = dest2;
    }
    src2 = src1.PercentComplete;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureDecimal>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureDecimal();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.PercentComplete = dest2;
    }
    dest0.NunnMcCurdy = dest1;
}
src1 = src0.VarianceExplanation;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.VarianceExplanation = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARContractDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.Number = src1.Number;
    dest1.EffortNumber = src1.EffortNumber;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ProgramInformationDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ProgramInformationDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ProgramInformationDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.PreferredName = src0.PreferredName;
dest0.FullName = src0.FullName;
dest0.LeadComponent = src0.LeadComponent;
if (src0.JointParticipants != null) {
    dest0.JointParticipants = new SL.Tamarin.SecureCollection<SL.Tamarin.NameItem>();
    for (int i0 = 0; i0 < src0.JointParticipants.Count; i0++)
    {
        src1 = src0.JointParticipants[i0];
        dest1 = new SL.Tamarin.NameItem();
        dest1.Value = src1.Value;
        dest0.JointParticipants.Add(dest1);
    }
}
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.ProgramInformationSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.ProgramInformationSubprogram();
        dest1.URI = src1.URI;
        dest1.Name = src1.Name;
        src2 = src1.PreviousMajorMilestone;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Tamarin.MajorMilestoneEnum>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Tamarin.MajorMilestoneEnum();
                dest2.Value = dest3;
            }
            dest1.PreviousMajorMilestone = dest2;
        }
        src2 = src1.NextMajorMilestone;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Tamarin.MajorMilestoneEnum>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Tamarin.MajorMilestoneEnum();
                dest2.Value = dest3;
            }
            dest1.NextMajorMilestone = dest2;
        }
        src2 = src1.Notes;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Notes = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ProgramInformationDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PerformanceDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PerformanceDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PerformanceDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PerformanceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryResultAffectedBy Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryResultAffectedBy src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryResultAffectedBy();
dest0.Parent = src0.Parent;
dest0.ObjectType = src0.ObjectType;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryResultAffectedByKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.FieldTypeXMLRestriction Convert(this Us.Mil.Osd.Acq.Damir.Orca.FieldTypeXMLRestriction src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.FieldTypeXMLRestriction();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
dest0.Value = src0.Value;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.FieldTypeXMLRestrictionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Subprivilege Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Subprivilege src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Subprivilege();
dest0.DataType = src0.DataType;
dest0.Parent = src0.Parent;
dest0.Privilege = src0.Privilege;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SubprivilegeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionRerelease Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionRerelease src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionRerelease();
dest0.Submission = src0.Submission;
dest0.Domain = src0.Domain;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionRereleaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SBPhase Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SBPhase src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SBPhase();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SBPhaseEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SBPhaseEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SBPhaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MilestoneCategory Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MilestoneCategory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MilestoneCategory();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.MilestoneCategoryEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.MilestoneCategoryEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MilestoneCategoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.AssessmentTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.AssessmentTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.AssessmentTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.AssessmentTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.TrackToBudgetDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.TrackToBudgetDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.TrackToBudgetDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.TrackToBudgetDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.Submission Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.Submission src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.Submission();
src1 = src0.Type;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SubmissionTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SubmissionTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Type = dest1;
}
dest0.LeadDomain = src0.LeadDomain;
dest0.LockDomain = src0.LockDomain;
dest0.LagDomain = src0.LagDomain;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentDataPointRevocation();
dest0.Subprogram = src0.Subprogram;
src1 = src0.Indicator;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentIndicatorEnum();
        dest1.Value = dest2;
    }
    dest0.Indicator = dest1;
}
dest0.Office = src0.Office;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Subprogram = src1.Subprogram;
    src2 = src1.Indicator;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.AssessmentIndicatorEnum();
            dest2.Value = dest3;
        }
        dest1.Indicator = dest2;
    }
    dest1.Office = src1.Office;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentDataPoint();
dest0.Subprogram = src0.Subprogram;
src1 = src0.Indicator;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentIndicatorEnum();
        dest1.Value = dest2;
    }
    dest0.Indicator = dest1;
}
dest0.Office = src0.Office;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Rating;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.AssessmentRatingEnum>>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureEnum<SL.Tamarin.AssessmentRatingEnum>();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest1.Value = dest2;
    }
    dest0.Rating = dest1;
}
src1 = src0.Synopsis;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Synopsis = dest1;
}
src1 = src0.Explanation;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Explanation = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Subprogram = src1.Subprogram;
    src2 = src1.Indicator;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.AssessmentIndicatorEnum();
            dest2.Value = dest3;
        }
        dest1.Indicator = dest2;
    }
    dest1.Office = src1.Office;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.LRIPDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.LRIPDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.LRIPDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.LRIPSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.LRIPSubprogram();
        dest1.URI = src1.URI;
        src2 = src1.Initial;
        if (src2 != null) {
            dest2 = new SL.Tamarin.LRIPEstimate();
            src3 = src2.ApprovalDate;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDateTime>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDateTime();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.ApprovalDate = dest3;
            }
            src3 = src2.Reference;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Reference = dest3;
            }
            src3 = src2.StartYear;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.StartYear = dest3;
            }
            src3 = src2.StartYearNumeric;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureInteger>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureInteger();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.StartYearNumeric = dest3;
            }
            src3 = src2.EndYear;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.EndYear = dest3;
            }
            src3 = src2.EndYearNumeric;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureInteger>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureInteger();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.EndYearNumeric = dest3;
            }
            src3 = src2.Quantity;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureInteger>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureInteger();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Quantity = dest3;
            }
            dest1.Initial = dest2;
        }
        src2 = src1.Current;
        if (src2 != null) {
            dest2 = new SL.Tamarin.LRIPEstimate();
            src3 = src2.ApprovalDate;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDateTime>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDateTime();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.ApprovalDate = dest3;
            }
            src3 = src2.Reference;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Reference = dest3;
            }
            src3 = src2.StartYear;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.StartYear = dest3;
            }
            src3 = src2.StartYearNumeric;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureInteger>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureInteger();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.StartYearNumeric = dest3;
            }
            src3 = src2.EndYear;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.EndYear = dest3;
            }
            src3 = src2.EndYearNumeric;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureInteger>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureInteger();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.EndYearNumeric = dest3;
            }
            src3 = src2.Quantity;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureInteger>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureInteger();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Quantity = dest3;
            }
            dest1.Current = dest2;
        }
        src2 = src1.Notes;
        if (src2 != null) {
            dest2 = new System.Nullable<SL.Orca.SecureString>();
            dest2.HasValue = src2.HasValue;
            src3 = src2.Value;
            if (src3 != null) {
                dest3 = new SL.Orca.SecureString();
                src4 = src3.SecurityDescriptor;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecurityDescriptor();
                    dest3.SecurityDescriptor = dest4;
                }
                dest3.Value = src3.Value;
                dest2.Value = dest3;
            }
            dest1.Notes = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.LRIPDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Subprogram Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Subprogram src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Subprogram();
dest0.Program = src0.Program;
dest0.URI = src0.URI;
dest0.Name = src0.Name;
dest0.IsActive = src0.IsActive;
dest0.IsOnApprovedList = src0.IsOnApprovedList;
dest0.Notes = src0.Notes;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SubprogramKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.CommodityType Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.CommodityType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.CommodityType();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.CommodityTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ACAT Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ACAT src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ACAT();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ACATKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentOfficeIndicatorPriorityRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentOfficeIndicatorPriorityRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentOfficeIndicatorPriorityRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentOfficeIndicatorPriorityKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.FederalAgencyRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.FederalAgencyRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.FederalAgencyRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.FederalAgencyKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.FMSDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.FMSDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.FMSDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.FMSDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractSectionDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractSectionDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractSectionDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Contracts != null) {
    dest0.Contracts = new SL.Tamarin.ContractIDCollection();
    for (int i0 = 0; i0 < src0.Contracts.Count; i0++)
    {
        src1 = src0.Contracts[i0];
        dest1 = new SL.Tamarin.ContractID();
        dest1.Number = src1.Number;
        dest1.EffortNumber = src1.EffortNumber;
        dest0.Contracts.Add(dest1);
    }
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractSectionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.APBMasterDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.APBMasterDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.APBMasterDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.APBMasterDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryResultRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryResultRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryResultRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryResultKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryObjectTypeAffectedRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryObjectTypeAffectedRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryObjectTypeAffectedRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryObjectTypeAffectedKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ServiceRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ServiceRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ServiceRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ServiceKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.CertificateRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.CertificateRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.CertificateRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.CertificateKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PlaceholderValue Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PlaceholderValue src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PlaceholderValue();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.PlaceholderValueEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.PlaceholderValueEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PlaceholderValueKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARBaseYearConversionDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARBaseYearConversionDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARBaseYearConversionDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARBaseYearConversionSubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARBaseYearConversionSubprogram();
        dest1.URI = src1.URI;
        dest1.RDTE = src1.RDTE;
        dest1.Procurement = src1.Procurement;
        dest1.MILCON = src1.MILCON;
        dest1.OM = src1.OM;
        dest1.WCFC = src1.WCFC;
        dest1.WCFO = src1.WCFO;
        dest1.ORFC = src1.ORFC;
        dest1.ORFO = src1.ORFO;
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARBaseYearConversionDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PMAssessmentDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PMAssessmentDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PMAssessmentDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PMAssessmentDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentSubmission Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentSubmission src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentSubmission();
dest0.Submission = src0.Submission;
src1 = src0.SubmissionType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SubmissionTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SubmissionTypeEnum();
        dest1.Value = dest2;
    }
    dest0.SubmissionType = dest1;
}
dest0.Subprogram = src0.Subprogram;
src1 = src0.Indicator;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.AssessmentIndicatorEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.AssessmentIndicatorEnum();
        dest1.Value = dest2;
    }
    dest0.Indicator = dest1;
}
dest0.Office = src0.Office;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentSubmissionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.LRIPDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.LRIPDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.LRIPDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.LRIPDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SecurityGroupPrivilegeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SecurityGroupPrivilegeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SecurityGroupPrivilegeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SecurityGroupPrivilegeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SARStatusRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SARStatusRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SARStatusRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SARStatusKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramType Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramType();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.PrivilegeRestrictionType Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.PrivilegeRestrictionType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.PrivilegeRestrictionType();
dest0.DataType = src0.DataType;
dest0.Code = src0.Code;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.PrivilegeRestrictionTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.PrivilegeDataTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.PrivilegeDataTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.PrivilegeDataTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.PrivilegeDataTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionRereleaseRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionRereleaseRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionRereleaseRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionRereleaseKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionHistoryActionRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionHistoryActionRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionHistoryActionRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionHistoryActionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.PlaceholderValueRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.PlaceholderValueRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.PlaceholderValueRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.PlaceholderValueKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentOfficeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentOfficeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentOfficeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentOfficeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.MilestoneCategoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.MilestoneCategoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.MilestoneCategoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.MilestoneCategoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.EstimateTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.EstimateTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.EstimateTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.EstimateTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.NuclearCostDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.NuclearCostDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.NuclearCostDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.NuclearCostDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ContractBudgetDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ContractBudgetDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ContractBudgetDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
dest0.DollarPrecision = src0.DollarPrecision;
src1 = src0.RDTE;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.RDTE = dest1;
}
src1 = src0.Procurement;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.Procurement = dest1;
}
src1 = src0.MILCON;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.MILCON = dest1;
}
src1 = src0.OM;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.OM = dest1;
}
src1 = src0.WCFC;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.WCFC = dest1;
}
src1 = src0.WCFO;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.WCFO = dest1;
}
src1 = src0.ORFC;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.ORFC = dest1;
}
src1 = src0.ORFO;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetAppropriationCategory();
    src2 = src1.CompletedContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.CompletedContracts = dest2;
    }
    if (src1.LargeActiveContracts != null) {
        dest1.LargeActiveContracts = new SL.Tamarin.LargeActiveContractCollection();
        for (int i1 = 0; i1 < src1.LargeActiveContracts.Count; i1++)
        {
            src2 = src1.LargeActiveContracts[i1];
            dest2 = new SL.Tamarin.LargeActiveContract();
            dest2.Number = src2.Number;
            dest2.EffortNumber = src2.EffortNumber;
            src3 = src2.PM;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.PM = dest3;
            }
            src3 = src2.OtherSources;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureDecimal();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.OtherSources = dest3;
            }
            dest1.LargeActiveContracts.Add(dest2);
        }
    }
    src2 = src1.SmallActiveContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.SmallActiveContracts = dest2;
    }
    src2 = src1.FutureContracts;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.FutureContracts = dest2;
    }
    src2 = src1.NonContractCost;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.NonContractCost = dest2;
    }
    src2 = src1.ManagementReserve;
    if (src2 != null) {
        dest2 = new SL.Tamarin.ContractBudgetDollarAmountPair();
        src3 = src2.PM;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.PM = dest3;
        }
        src3 = src2.OtherSources;
        if (src3 != null) {
            dest3 = new System.Nullable<SL.Orca.SecureDecimal>();
            dest3.HasValue = src3.HasValue;
            src4 = src3.Value;
            if (src4 != null) {
                dest4 = new SL.Orca.SecureDecimal();
                src5 = src4.SecurityDescriptor;
                if (src5 != null) {
                    dest5 = new SL.Orca.SecurityDescriptor();
                    dest4.SecurityDescriptor = dest5;
                }
                dest4.Value = src4.Value;
                dest3.Value = dest4;
            }
            dest2.OtherSources = dest3;
        }
        dest1.ManagementReserve = dest2;
    }
    src2 = src1.Notes;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Orca.SecureString>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Orca.SecureString();
            src4 = src3.SecurityDescriptor;
            if (src4 != null) {
                dest4 = new SL.Orca.SecurityDescriptor();
                dest3.SecurityDescriptor = dest4;
            }
            dest3.Value = src3.Value;
            dest2.Value = dest3;
        }
        dest1.Notes = dest2;
    }
    dest0.ORFO = dest1;
}
src1 = src0.Notes;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Orca.SecureString>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Orca.SecureString();
        src3 = src2.SecurityDescriptor;
        if (src3 != null) {
            dest3 = new SL.Orca.SecurityDescriptor();
            dest2.SecurityDescriptor = dest3;
        }
        dest2.Value = src2.Value;
        dest1.Value = dest2;
    }
    dest0.Notes = dest1;
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ContractBudgetDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryResult Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryResult src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryResult();
dest0.Parent = src0.Parent;
dest0.Position = src0.Position;
dest0.Name = src0.Name;
dest0.ObjectType = src0.ObjectType;
dest0.IsUserDependent = src0.IsUserDependent;
dest0.SubqueryURI = src0.SubqueryURI;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryResultKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryResultAffectedByRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryResultAffectedByRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryResultAffectedByRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryResultAffectedByKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryParameterRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryParameterRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryParameterRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryParameterKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.QueryObjectTypeAffected Convert(this Us.Mil.Osd.Acq.Damir.Orca.QueryObjectTypeAffected src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.QueryObjectTypeAffected();
dest0.Parent = src0.Parent;
dest0.ObjectType = src0.ObjectType;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.QueryObjectTypeAffectedKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.ObjectTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Orca.ObjectTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.ObjectTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.ObjectTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Orca.ObjectType Convert(this Us.Mil.Osd.Acq.Damir.Orca.ObjectType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Orca.ObjectType();
dest0.Name = src0.Name;
dest0.SQL = src0.SQL;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Orca.ObjectTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SecurityGroupMemberRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SecurityGroupMemberRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SecurityGroupMemberRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SecurityGroupMemberKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.Privilege Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.Privilege src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.Privilege();
dest0.DataType = src0.DataType;
dest0.Code = src0.Code;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.PrivilegeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.DAESGroupRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.DAESGroupRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.DAESGroupRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.DAESGroupKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSDAssessmentOffice Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSDAssessmentOffice src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSDAssessmentOffice();
dest0.Organization = src0.Organization;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSDAssessmentOfficeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.FederalAccountRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.FederalAccountRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.FederalAccountRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.FederalAccountKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARHistoryDataPoint Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARHistoryDataPoint src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARHistoryDataPoint();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
if (src0.Subprograms != null) {
    dest0.Subprograms = new SL.Tamarin.SARHistorySubprogramCollection();
    for (int i0 = 0; i0 < src0.Subprograms.Count; i0++)
    {
        src1 = src0.Subprograms[i0];
        dest1 = new SL.Tamarin.SARHistorySubprogram();
        dest1.URI = src1.URI;
        dest1.BaseYear = src1.BaseYear;
        dest1.BaseYearNumeric = src1.BaseYearNumeric;
        dest1.DollarPrecision = src1.DollarPrecision;
        src2 = src1.SARPAUCHistory;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARHistoryUnitCost();
            dest2.DollarPrecision = src2.DollarPrecision;
            src3 = src2.InitialSB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.ThenYearOnlyCost();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                dest2.InitialSB = dest3;
            }
            if (src2.SBChanges != null) {
                dest2.SBChanges = new SL.Tamarin.SARHistoryUnitCostCategoryCollection();
                for (int i2 = 0; i2 < src2.SBChanges.Count; i2++)
                {
                    src3 = src2.SBChanges[i2];
                    dest3 = new SL.Tamarin.SARHistoryUnitCostCategory();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.ThenYearOnlyVariance();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.SBChanges.Add(dest3);
                }
            }
            src3 = src2.SB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.ThenYearOnlyCost();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                dest2.SB = dest3;
            }
            if (src2.CEChanges != null) {
                dest2.CEChanges = new SL.Tamarin.SARHistoryUnitCostCategoryCollection();
                for (int i2 = 0; i2 < src2.CEChanges.Count; i2++)
                {
                    src3 = src2.CEChanges[i2];
                    dest3 = new SL.Tamarin.SARHistoryUnitCostCategory();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.ThenYearOnlyVariance();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.CEChanges.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.SARPAUCHistory = dest2;
        }
        src2 = src1.SARAPUCHistory;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARHistoryUnitCost();
            dest2.DollarPrecision = src2.DollarPrecision;
            src3 = src2.InitialSB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.ThenYearOnlyCost();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                dest2.InitialSB = dest3;
            }
            if (src2.SBChanges != null) {
                dest2.SBChanges = new SL.Tamarin.SARHistoryUnitCostCategoryCollection();
                for (int i2 = 0; i2 < src2.SBChanges.Count; i2++)
                {
                    src3 = src2.SBChanges[i2];
                    dest3 = new SL.Tamarin.SARHistoryUnitCostCategory();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.ThenYearOnlyVariance();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.SBChanges.Add(dest3);
                }
            }
            src3 = src2.SB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.ThenYearOnlyCost();
                src4 = src3.ThenYear;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureDecimal>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureDecimal();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.ThenYear = dest4;
                }
                dest2.SB = dest3;
            }
            if (src2.CEChanges != null) {
                dest2.CEChanges = new SL.Tamarin.SARHistoryUnitCostCategoryCollection();
                for (int i2 = 0; i2 < src2.CEChanges.Count; i2++)
                {
                    src3 = src2.CEChanges[i2];
                    dest3 = new SL.Tamarin.SARHistoryUnitCostCategory();
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.SARCostVarianceCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.SARCostVarianceCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.Variance;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.ThenYearOnlyVariance();
                        src5 = src4.ThenYear;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDecimal();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.ThenYear = dest5;
                        }
                        dest3.Variance = dest4;
                    }
                    dest2.CEChanges.Add(dest3);
                }
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.SARAPUCHistory = dest2;
        }
        src2 = src1.APBUnitCostHistory;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARHistoryAPBUnitCostHistory();
            dest2.DollarPrecision = src2.DollarPrecision;
            src3 = src2.OriginalAPB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryAPBUnitCost();
                dest3.EffectiveDate = src3.EffectiveDate;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.OriginalAPB = dest3;
            }
            src3 = src2.January2006APB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryAPBUnitCost();
                dest3.EffectiveDate = src3.EffectiveDate;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.January2006APB = dest3;
            }
            src3 = src2.RevisedOriginalAPB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryAPBUnitCost();
                dest3.EffectiveDate = src3.EffectiveDate;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.RevisedOriginalAPB = dest3;
            }
            src3 = src2.PriorAPB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryAPBUnitCost();
                dest3.EffectiveDate = src3.EffectiveDate;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.PriorAPB = dest3;
            }
            src3 = src2.APB;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryAPBUnitCost();
                dest3.EffectiveDate = src3.EffectiveDate;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.APB = dest3;
            }
            src3 = src2.PriorAnnualSAR;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryAPBUnitCost();
                dest3.EffectiveDate = src3.EffectiveDate;
                src4 = src3.PAUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.PAUC = dest4;
                }
                src4 = src3.APUC;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.CostDollarAmountPair();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    src5 = src4.BaseYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.BaseYear = dest5;
                    }
                    dest3.APUC = dest4;
                }
                dest2.PriorAnnualSAR = dest3;
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.APBUnitCostHistory = dest2;
        }
        src2 = src1.SAROtherHistory;
        if (src2 != null) {
            dest2 = new SL.Tamarin.SARHistoryOtherHistory();
            if (src2.Milestones != null) {
                dest2.Milestones = new SL.Tamarin.SARHistoryMilestoneCollection();
                for (int i2 = 0; i2 < src2.Milestones.Count; i2++)
                {
                    src3 = src2.Milestones[i2];
                    dest3 = new SL.Tamarin.SARHistoryMilestone();
                    src4 = src3.Origin;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.OriginEnum();
                        dest3.Origin = dest4;
                    }
                    src4 = src3.Category;
                    if (src4 != null) {
                        dest4 = new System.Nullable<SL.Tamarin.MilestoneCategoryEnum>();
                        dest4.HasValue = src4.HasValue;
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new SL.Tamarin.MilestoneCategoryEnum();
                            dest4.Value = dest5;
                        }
                        dest3.Category = dest4;
                    }
                    src4 = src3.PE;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MilestoneValue();
                        src5 = src4.Placeholder;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest5.Value = dest6;
                            }
                            dest4.Placeholder = dest5;
                        }
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Value = dest5;
                        }
                        dest3.PE = dest4;
                    }
                    src4 = src3.DE;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MilestoneValue();
                        src5 = src4.Placeholder;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest5.Value = dest6;
                            }
                            dest4.Placeholder = dest5;
                        }
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Value = dest5;
                        }
                        dest3.DE = dest4;
                    }
                    src4 = src3.PdE;
                    if (src4 != null) {
                        dest4 = new SL.Tamarin.MilestoneValue();
                        src5 = src4.Placeholder;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureEnum<SL.Tamarin.PlaceholderValueEnum>();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest5.Value = dest6;
                            }
                            dest4.Placeholder = dest5;
                        }
                        src5 = src4.Value;
                        if (src5 != null) {
                            dest5 = new System.Nullable<SL.Orca.SecureDateTime>();
                            dest5.HasValue = src5.HasValue;
                            src6 = src5.Value;
                            if (src6 != null) {
                                dest6 = new SL.Orca.SecureDateTime();
                                src7 = src6.SecurityDescriptor;
                                if (src7 != null) {
                                    dest7 = new SL.Orca.SecurityDescriptor();
                                    dest6.SecurityDescriptor = dest7;
                                }
                                dest6.Value = src6.Value;
                                dest5.Value = dest6;
                            }
                            dest4.Value = dest5;
                        }
                        dest3.PdE = dest4;
                    }
                    dest2.Milestones.Add(dest3);
                }
            }
            src3 = src2.Cost;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryCost();
                src4 = src3.PE;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.ThenYearOnlyCost();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    dest3.PE = dest4;
                }
                src4 = src3.DE;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.ThenYearOnlyCost();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    dest3.DE = dest4;
                }
                src4 = src3.PdE;
                if (src4 != null) {
                    dest4 = new SL.Tamarin.ThenYearOnlyCost();
                    src5 = src4.ThenYear;
                    if (src5 != null) {
                        dest5 = new System.Nullable<SL.Orca.SecureDecimal>();
                        dest5.HasValue = src5.HasValue;
                        src6 = src5.Value;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecureDecimal();
                            src7 = src6.SecurityDescriptor;
                            if (src7 != null) {
                                dest7 = new SL.Orca.SecurityDescriptor();
                                dest6.SecurityDescriptor = dest7;
                            }
                            dest6.Value = src6.Value;
                            dest5.Value = dest6;
                        }
                        dest4.ThenYear = dest5;
                    }
                    dest3.PdE = dest4;
                }
                dest2.Cost = dest3;
            }
            src3 = src2.Quantity;
            if (src3 != null) {
                dest3 = new SL.Tamarin.SARHistoryQuantity();
                src4 = src3.PE;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.PE = dest4;
                }
                src4 = src3.DE;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.DE = dest4;
                }
                src4 = src3.PdE;
                if (src4 != null) {
                    dest4 = new System.Nullable<SL.Orca.SecureInteger>();
                    dest4.HasValue = src4.HasValue;
                    src5 = src4.Value;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecureInteger();
                        src6 = src5.SecurityDescriptor;
                        if (src6 != null) {
                            dest6 = new SL.Orca.SecurityDescriptor();
                            dest5.SecurityDescriptor = dest6;
                        }
                        dest5.Value = src5.Value;
                        dest4.Value = dest5;
                    }
                    dest3.PdE = dest4;
                }
                dest2.Quantity = dest3;
            }
            src3 = src2.Notes;
            if (src3 != null) {
                dest3 = new System.Nullable<SL.Orca.SecureString>();
                dest3.HasValue = src3.HasValue;
                src4 = src3.Value;
                if (src4 != null) {
                    dest4 = new SL.Orca.SecureString();
                    src5 = src4.SecurityDescriptor;
                    if (src5 != null) {
                        dest5 = new SL.Orca.SecurityDescriptor();
                        dest4.SecurityDescriptor = dest5;
                    }
                    dest4.Value = src4.Value;
                    dest3.Value = dest4;
                }
                dest2.Notes = dest3;
            }
            dest1.SAROtherHistory = dest2;
        }
        dest0.Subprograms.Add(dest1);
    }
}
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARHistoryDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.IsPrivate = src0.IsPrivate;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ProgramInformationDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ProgramInformationDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ProgramInformationDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ProgramInformationDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SARStatus Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SARStatus src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SARStatus();
dest0.Position = src0.Position;
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SARStatusKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionTypeRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionTypeRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionTypeRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.SubmissionTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.SubmissionTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SubmissionHistoryRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SubmissionHistoryRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SubmissionHistoryRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SubmissionHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.EstimateType Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.EstimateType src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.EstimateType();
dest0.Position = src0.Position;
src1 = src0.Code;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.Code = dest1;
}
dest0.Name = src0.Name;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.EstimateTypeKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.EscalationIndexRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.EscalationIndexRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.EscalationIndexRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.EscalationIndexKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.BaseYearConversionFactorRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.BaseYearConversionFactorRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.BaseYearConversionFactorRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.BaseYearConversionFactorKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.AssessmentIndicatorRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.AssessmentIndicatorRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.AssessmentIndicatorRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.AssessmentIndicatorKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.SubprogramHistory Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.SubprogramHistory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.SubprogramHistory();
dest0.ProgramHistory = src0.ProgramHistory;
dest0.Program = src0.Program;
dest0.URI = src0.URI;
dest0.Name = src0.Name;
dest0.IsActive = src0.IsActive;
dest0.IsOnApprovedList = src0.IsOnApprovedList;
dest0.Notes = src0.Notes;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.SubprogramHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramSupportingComponentRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramSupportingComponentRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramSupportingComponentRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramSupportingComponentKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramSupportingComponentHistory Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramSupportingComponentHistory src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramSupportingComponentHistory();
dest0.ProgramHistory = src0.ProgramHistory;
dest0.Program = src0.Program;
dest0.SupportingComponent = src0.SupportingComponent;
dest0.Position = src0.Position;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramSupportingComponentHistoryKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.ScheduleDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.ScheduleDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.ScheduleDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.ScheduleDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.SARCostVarianceDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.SARCostVarianceDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.SARCostVarianceDataPointRevocation();
dest0.Program = src0.Program;
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.SARCostVarianceDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Tamarin.OSCostDataPointRevocation Convert(this Us.Mil.Osd.Acq.Damir.Tamarin.OSCostDataPointRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Tamarin.OSCostDataPointRevocation();
dest0.Program = src0.Program;
src1 = src0.EstimateType;
if (src1 != null) {
    dest1 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
    dest1.HasValue = src1.HasValue;
    src2 = src1.Value;
    if (src2 != null) {
        dest2 = new SL.Tamarin.EstimateTypeEnum();
        dest1.Value = dest2;
    }
    dest0.EstimateType = dest1;
}
dest0.EffectiveDate = src0.EffectiveDate;
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Tamarin.OSCostDataPointKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest1.Source = src1.Source;
    dest1.Program = src1.Program;
    src2 = src1.EstimateType;
    if (src2 != null) {
        dest2 = new System.Nullable<SL.Tamarin.EstimateTypeEnum>();
        dest2.HasValue = src2.HasValue;
        src3 = src2.Value;
        if (src3 != null) {
            dest3 = new SL.Tamarin.EstimateTypeEnum();
            dest2.Value = dest3;
        }
        dest1.EstimateType = dest2;
    }
    dest1.EffectiveDate = src1.EffectiveDate;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Source = src0.Source;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
		public static SL.Mongoose.ProgramStatusRevocation Convert(this Us.Mil.Osd.Acq.Damir.Mongoose.ProgramStatusRevocation src0)
		{
			dynamic dest0;
			dynamic src1, dest1,src2, dest2,src3, dest3,src4, dest4,src5, dest5,src6, dest6,src7, dest7,src8, dest8,src9, dest9,src10, dest10,src11, dest11,src12, dest12,src13, dest13,src14, dest14,src15, dest15,src16, dest16;
	
	dest0 = new SL.Mongoose.ProgramStatusRevocation();
src1 = src0.Key;
if (src1 != null) {
    dest1 = new SL.Mongoose.ProgramStatusKey();
    dest1.Sequence = src1.Sequence;
    dest1.ID = src1.ID;
    dest0.Key = dest1;
}
dest0.ID = src0.ID;
dest0.Error = src0.Error;
dest0.LastUpdated = src0.LastUpdated;
dest0.LastUpdatedBy = src0.LastUpdatedBy;
			return dest0;	
		}	
	
	}
}
